使用JPA将表名和列名从大写改为小写会不会给我带来麻烦?

使用JPA将表名和列名从大写改为小写会不会给我带来麻烦?,jpa,Jpa,当您不使用@column标记等时,JPA提供程序创建的列和表名总是大写的。我认为JPA规范甚至说他们应该这样做。但是否有特定的技术原因,比如后端不区分大小写 换句话说,总有一天,我习惯于在@Column注释中设置带有name参数的驼峰名字,这会不会反过来咬我一口 (请注意,我欣赏约定胜过配置,但有时我只是想按自己的方式来做。)如果运行数据库的操作系统区分大小写,则表名的大小写必须正确 在Linux中,以下内容涉及不同的列: @Column(name="MY_TABLE") @Column(na

当您不使用
@column
标记等时,JPA提供程序创建的列和表名总是大写的。我认为JPA规范甚至说他们应该这样做。但是否有特定的技术原因,比如后端不区分大小写

换句话说,总有一天,我习惯于在
@Column
注释中设置带有
name
参数的驼峰名字,这会不会反过来咬我一口


(请注意,我欣赏约定胜过配置,但有时我只是想按自己的方式来做。)

如果运行数据库的操作系统区分大小写,则表名的大小写必须正确

在Linux中,以下内容涉及不同的列:

@Column(name="MY_TABLE") 
@Column(name="my_table")

为数据库对象使用下划线分隔的名称是一种历史习惯,主要是因为数据库系统通常不区分大小写。在这种情况下,如果表名中的所有单词都在一起,则很难读取(例如,MyLongTableNameIsnVeryReadable)。使用下划线只是一种命名约定,以使事情更易于阅读,就像camel case一样


如果您从下划线分隔改为驼峰大小写,就可以了,因为JPA实现设计用于区分大小写和不区分大小写的数据库。

您的意思是说,当我使用需要区分大小写的名称来区分表时,它们会自动绕过不区分大小写的后端吗?并不是说我的表名除了字母大小写外都是相同的——我会发现这对人类来说太令人困惑了。我的意思是JPA实现(例如Hibernate)对每个数据库系统都有“方言”,并且会相应地进行操作。如果您有两个名称相同,但大小写相同,方言应该会有问题。至少对于MySQL来说,这是不正确的:表名区分大小写,但列名不区分大小写。您能提供一些参考来支持这一点吗?我怀疑这到底是谁干的