В 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
);
СледуетЯ следую обоим стандартам и использую атрибут name в @Table и @Column?Или я должен следовать соглашениям Java и полагаться на сопоставления JPA по умолчанию.
Какой наиболее распространенный подход и / или лучший подход к этому конфликту стандартов?