【发布时间】:2010-10-15 18:33:51
【问题描述】:
在 Java 中,属性和类(实体)的命名约定以 CamelCase 方式完成:
@Entity
public class UserMessage implements Serializable {
@Id
private Integer id;
private String shortTitle;
private String longTitle;
private String htmlMessage;
}
但在 SQL 世界中,best practice 在单词之间使用带有下划线的大写字母(如 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
);
我应该同时遵循这两个标准并在@Table 和@Column 上使用name 属性吗?或者我应该遵循 Java 约定并依赖默认的 JPA 映射。
对于这种标准冲突,最常见的方法和/或最佳方法是什么?
【问题讨论】:
-
“我是否应该同时遵循这两个标准并在@Table 和@Column 上使用name 属性”。这是你的答案。让注释发挥作用。
-
我不确定我是否真的同意这种看起来很生气的命名约定在“SQL 世界”中被认为是“最佳实践”。只是说...
标签: java sql hibernate jpa naming-conventions