最佳实践:JPA 的最佳数据库命名约定?[已关闭]
在Java中,属性en类(实体)的命名约定是用CamelCase的方式完成的:
@Entity
public class UserMessage implements Serializable {
@Id
private Integer id;
private String shortTitle;
private String longTitle;
private String htmlMessage;
}
但在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
);
我是否应该同时遵循这两个标准,并在@Table和@Column上使用 name 属性?或者我应该遵循Java约定并依赖默认的JPA映射。
关于这种标准冲突,最常见的方法和/或最佳方法是什么?