Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过JPA注释指定SQL注释?_Java_Orm_Jpa - Fatal编程技术网

Java 如何通过JPA注释指定SQL注释?

Java 如何通过JPA注释指定SQL注释?,java,orm,jpa,Java,Orm,Jpa,有没有办法通过JPA注释指定SQL注释?表和列的注释 有没有办法通过JPA注释指定SQL注释?表和列的注释 不需要。如果您想定义表和列注释,最好的选择是在生成的DDL中的事实之后,再对数据库执行它。有一种方法,至少对于MySQL是这样。这取决于您的数据库引擎。 对于MySQL,您可以将注释添加到columnDefinition中。 下面是一个列的示例: /** * Database id. */ @javax.persistence.Id @javax.persistence.Generat

有没有办法通过JPA注释指定SQL注释?表和列的注释

有没有办法通过JPA注释指定SQL注释?表和列的注释


不需要。如果您想定义表和列注释,最好的选择是在生成的DDL中的事实之后,再对数据库执行它。

有一种方法,至少对于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;

正如您所看到的,注释(“显然是键”)是列定义的一部分。但它不是标准的JPA,因为如果您更改了数据库引擎,就需要更改它。同样,如果使用非标准SQL类型并更改数据库引擎,则必须更改列定义。

标准()似乎没有定义任何定义表或列注释的方法(看起来他们甚至没有提到它们)。因此,表/列上注释的语法可能因DBMS而异。我想这就是为什么JPA没有提供通用的方法来做到这一点

这对我很有效。谢谢这是我的密码。我希望它能帮助一些人:
@Column(columnDefinition=“INT(11)NOT NULL COMMENT'0表示无操作,1表示已执行,2表示已验证,3表示已批准')private INT status