2016-11-21 43 views
0

我用mysql-connector-java 6.0.5和尝试过其他版本(尝试了所有5.1。*)Java的MySQL连接不正确返回表中的行与JOIN子句

@Query(value = "select c.* from sub_object c,connectSectionAndSubobject tr where tr.sectionID = 'something'" 
     ,nativeQuery = true) 
List<SubObjectEntity> findEntity(); 

它可以从MySQL工作台不错,但是从java代码结果总是一个空的resultSet。 如果我看看ResultSet,我可以看到ResultSet.invalidRowReason =“空结果集上的非法操作”。 但如果我尝试的executeQuery喜欢这一切工作不错:

@Query(value = "select c.* from sub_object c,connectSectionAndSubobject tr where tr.objectID = 1" 
     ,nativeQuery = true) 

表被这个查询创建:

CREATE TABLE IF NOT EXISTS connectSectionAndSubobjectsubobjectID INT(11)NOT NULL, sectionID varchar(15)COLLATE utf8_bin NOT NULL )ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin;

我试图将tr.sectionID = 'something'更改为tr.sectionID LIKE 'something'但也失败了。 我不明白它应该如何工作。请问你能帮帮我吗?

+0

应该'东西'是您的查询参数? – Igorovics

+0

是的,当然,但不是现在,在第一个我想找到正确的方式来执行此查询。问题是,因为本机查询不如MySQL Workbench中的那么好。 –

+0

感谢您的审查 –

回答

0

问题是由同事解决了,使用mysql-connector使用Windows 1252的默认编码,只要是需要添加

?了useUnicode =真&的characterEncoding = UTF-8

到网址的连接