2017-09-05 149 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

相关问题