<分区>
在 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 上使用名称属性?或者我应该遵循 Java 约定并依赖默认的 JPA 映射。
解决这种标准冲突的最常见方法和/或最佳方法是什么?