2016-11-21 41 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

到網址的連接