Kde*_*per 13 java sql hibernate jpa naming-conventions
在Java中,类(实体)的属性的命名约定是通过CamelCase方式完成的:
@Entity
public class UserMessage implements Serializable {
@Id
private Integer id;
private String shortTitle;
private String longTitle;
private String htmlMessage;
}
Run Code Online (Sandbox Code Playgroud)
但是在SQL世界中,最好的做法是在单词之间使用带有下划线的大写(如Java常量).在SQL世界中,最好的做法是将表名包含在列名中,这样外键在大多数情况下的名称与原始表中的id完全相同.
CREATE TABLE USER_MESSAGE (
USER_MESSAGE_ID MEDIUMINT(8) NOT NULL,
USER_MESSAGE_SHORT_TITLE VARCHAR(20),
USER_MESSAGE_LONG_TITLE VARCHAR(80),
USER_MESSAGE_HTML_MESSAGE TEXT NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
我应该遵循这两个标准并在@Table和@Column上使用name属性吗?或者我应该遵循Java约定并依赖于默认的JPA映射.
这种标准冲突最常见的方法和/或最佳方法是什么?
我应该遵循这两个标准并在@Table和@Column上使用name属性吗?或者我应该遵循Java约定并依赖于默认的JPA映射.
如果JPA默认约定与公司的首选约定不匹配(没有"一个真实"标准),则覆盖它们.这可以使用@Table和@Column注释完成(在Hibernate的特定情况下,您也可以提供自己的 实现NamingStrategy).
这种标准冲突最常见的方法和/或最佳方法是什么?
没有冲突,有Java命名约定,JPA端有一个默认约定用于将对象映射到表(因为JPA必须选择一个)并且SQL端没有"一个真正的"标准.所以:
| 归档时间: |
|
| 查看次数: |
15748 次 |
| 最近记录: |