【发布时间】:2010-09-27 20:40:46
【问题描述】:
有没有办法通过JPA注解来指定SQL cmets?表和列的注释。
【问题讨论】:
有没有办法通过JPA注解来指定SQL cmets?表和列的注释。
【问题讨论】:
有一种方法,至少对于 MySQL 而言。这取决于您的数据库引擎。 对于 MySQL,您可以将注释添加到 columnDefinition。 以下是列的示例:
/**
* Database id.
*/
@javax.persistence.Id
@javax.persistence.GeneratedValue(strategy = javax.persistence.GenerationType.AUTO)
@javax.persistence.Column(columnDefinition = "SMALLINT UNSIGNED COMMENT 'The KEY obviously'")
private Long id;
如您所见,注释(“显然是 KEY”)是列定义的一部分。但它不是标准的 JPA,因为如果您更改数据库引擎,则需要更改它。如果您使用非标准 SQL 类型并更改数据库引擎,则必须更改列定义。
【讨论】:
@Column(columnDefinition=" INT(11) NOT NULL COMMENT '0 for no action, 1 for executed, 2 for validated, 3 for aproved'") private int status;
有没有办法通过JPA注解来指定SQL cmets?表和列的注释。
没有。如果要定义表和列 cmets,最好的选择是在生成的 DDL 中的事实之后,然后对数据库执行它。
【讨论】:
标准(http://savage.net.au/SQL/) 似乎没有定义任何方式来定义表或列 cmets(看起来他们甚至没有提到它们)。因此,表/列上的 cmets 语法可能因一个 DBMS 而异。我认为这就是为什么 JPA 没有提供通用的方法来做到这一点
【讨论】: