2017-06-05 67 views
0

我有我的服務啓動並運行,但仍有一些事情我不明白。由休眠生成的查詢

我有一個查詢,它類似於以下

@Query( 「選擇噸FROM TABLENAME T」)

然後hibernate會產生下面的查詢

休眠:選擇tname.column1 as a,tname.column2 as b,tname.column3 as c,tname.column4 as d from tablename tname

問題是當我查詢mysql數據庫時,Tablename是區分大小寫的。有沒有一種方法可以在hibernate中完全按照註釋中的拼寫方式執行查詢?此外,是否有可能阻止休眠從打破camelcased列成兩個作品。例如,如果我有一個名爲columnOne的列,hibernate將要生成一個名爲column_one的列。

我知道這很可能與hibernate的命名策略有關,但我一直無法找到解決方案。

+0

你有沒有試過用'@表(「表名」)'的「表名」實體本身? –

+0

我用@Table(name =「Tablename」)註解了我的實體類 – Jim

+0

您使用的是什麼版本的hibernate? – YuVi

回答

0

嘗試在application.properties文件中添加以下內容。

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl 

文檔關於命名策略是here

+0

謝謝!這工作完美。 – Jim