В Java соглашение об именах для свойств и классов (сущностей) выполняется способом CamelCase :
@Entity
public class UserMessage implements Serializable {
@Id
private Integer id;
private String shortTitle;
private String longTitle;
private String htmlMessage;
}
Но в мире SQL считается лучшей практикой , чтобы используйте верхний регистр с подчеркиванием между словами (например, константы Java). В мире SQL также считается лучшей практикой включать имя таблицы в имена столбцов, таким образом внешние ключи в большинстве случаев именуются точно так же, как идентификатор в исходной таблице.
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 по умолчанию.
Каков наиболее общий подход и / или лучший подход к этому конфликту стандартов?