2017-09-05 139 views
0

我必須在我的Postgres中使用表和列名稱,包含大寫和小寫字母。例如OrgInfo如何配置Hibernate使大小寫字母的表/列名稱

我想創建這樣的表和列使用休眠。如果我使用標準方法:

@Entity 
@Table(name = "OrgInfo") 

然後我收到名爲「org_info」的表。

我如何配置Hibernate來創建包含大寫和小寫字母的確切名稱的表和列?

我曾嘗試使用

@Entity 
@Table(name = "\"OrgInfo\"") 

沒有效果。

而且我使用Spring啓動,並嘗試配置是這樣的:

spring.jpa.hibernate.naming策略= org.hibernate.cfg.DefaultNamingStrategy OR spring.jpa.hibernate.naming -strategy = org.hibernate.cfg.ImprovedNamingStrategy

+4

雖然你也許可以說服你的混淆層的話,我就** **強烈反對推薦使用'CamelCase'。 Postgres通常的命名約定是使用'snake_case' - 如果你堅持這一點,你將爲自己節省很多麻煩。 –

+0

感謝您的建議。我不喜歡這種方法,但是... –

+0

是不是與DBMS本身具體相關? – ACV

回答

3

嘗試在配置文件中配置Hibernate 「物理戰略」,如下所示:

spring.jpa.hibernate.naming.physical策略= org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

+0

多數民衆贊成在工作。謝謝。 –

+0

@KirillCh高興地幫忙。 – SachinSarawgi

1

試試這個:

@Entity @Table(name = "\"OrgInfo\"") 
+0

不是。它可能需要以某種方式配置Hibernate命名策略以用於這種方法工作。 –

0

工作解決方案是使用兩個部分:

@Entity 
@Table(name = "\"OrgInfo\"") 

spring.jpa.hibernate.naming.physical策略= org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

相關問題