Описание комментария уже существует для Таблица аннотации. Для этого мы должны использовать аннотацию Hibernate @Table, дополняющую аннотацию JPA @Table.
Например:
@javax.persistence.Table(name = "Cat")
@org.hibernate.annotations.Table(comment = "Table for cats")
public class Cat {
...
Что касается комментария столбца: Кажется, нет никакого эквивалента, даже в Hibernate 5.2/JPA 2.1.
Была проблема, представленная давным-давно (2007) по этому вопросу, но все еще не решена: Support @Comment or column attribute on @Table and @Column. Заброшены с 2012 года?
Я также нашел применение в комментарий org.hibernate.dialect.Dialect:
/**
* Does this dialect/database support commenting on tables, columns, etc?
*
* @return {@code true} if commenting is supported
*/
public boolean supportsCommentOn() {
return false;
}
/**
* Get the comment into a form supported for table definition.
*
* @param comment The comment to apply
*
* @return The comment fragment
*/
public String getTableComment(String comment) {
return "";
}
/**
* Get the comment into a form supported for column definition.
*
* @param comment The comment to apply
*
* @return The comment fragment
*/
public String getColumnComment(String comment) {
return "";
}
Например PostgreSQL81Dialect поддерживает его (supportsCommentOn() возвращает истину).
Он позволяет использовать команду SQL «COMMENT ON ...», , как в PostgreSQL (https://www.postgresql.org/docs/current/static/sql-comment.html).
Например:
COMMENT ON TABLE my_schema.my_table IS 'Employee Information';
COMMENT ON COLUMN my_table.my_column IS 'Employee ID number';
Это, кажется, используется там: org.hibernate.tool.schema.internal.StandardTableExporter # getSqlCreateStrings
комментарий колонны извлекают из спящего режима отображения с org.hibernate.mapping.Column # getComment.
Наконец, при использовании Hibernate Tools и обратное проектирование, комментарий столбца извлекается из JDBC DatabaseMetaData с org.hibernate.cfg.reveng.BasicColumnProcessor # processBasicColumns.
-> String comment = (String) columnRs.get("REMARKS");
он придает данный текст заявления создания, поэтому он работает до тех пор, как ColumnDefinition соответствует лежащей в основе БД – Zielu
Поскольку не все поддержки РСУБД «COMMENT» против COLUMN (Postgresql, HSQLDB, Дерби, чтобы назвать, но некоторые) то это, безусловно, будет работать только для очень ограниченного набора СУБД. Кроме того, включение в аннотацию означает, что скомпилированный код привязан к тем RDBMS, которые позволяют этот синтаксис, тогда как если бы вы поместили его в XML-файл, вы могли бы поменять файл orm.xml на основе используемой РСУБД. –
Да. Я согласен с вами. Но не удалось найти лучшего решения. Что вы подразумеваете под XML? – masterdany88