2010-09-27 83 views

回答

5

是否有任何方式通過JPA批註指定SQL註釋?表和列的註釋。

不可以。如果要定義表和列註釋,最好的選擇是在生成的DDL中的事實之後執行它,然後再對數據庫執行它。

4

有一種方法,至少對於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類型並更改數據庫引擎,則必須更改列定義。

+0

它爲我工作。謝謝。這是我的代碼。我希望它能幫助別人:'@Column(columnDefinition =「INT(11)NOT NULL COMMENT'0 for no action,1 for executed,2 for validated,3 for aproved'」) \t private int status;' – masterdany88 2015-02-27 19:50:19

+0

how它可以完成,如果它的一個varchar? – 2016-05-16 10:33:28

1

標準(http://savage.net.au/SQL/)似乎沒有定義任何方式來定義表或列的評論(看起來他們甚至沒有提及它們)。因此,表/列上的註釋語法可能會因DBMS而異。我認爲多數民衆贊成爲什麼沒有提供通用的方式來做到這一點