我有一個Java bean。現在,我想確定該字段應該是唯一的。 我使用下面的代碼:Java中的@UniqueConstraint註釋
@UniqueConstraint(columnNames={"username"})
public String username;
,但我收到的一些錯誤:
@UniqueConstraint is dissallowed for this location
請告訴我正確的方式使用唯一約束?
注:我使用的是玩框架。
我有一個Java bean。現在,我想確定該字段應該是唯一的。 我使用下面的代碼:Java中的@UniqueConstraint註釋
@UniqueConstraint(columnNames={"username"})
public String username;
,但我收到的一些錯誤:
@UniqueConstraint is dissallowed for this location
請告訴我正確的方式使用唯一約束?
注:我使用的是玩框架。
爲了確保字段值是唯一的,你可以寫
@Column(unique=true)
String username;
的@UniqueConstraint註釋是在表級別,這就是爲什麼你把它應用到現場時,得到一個錯誤註釋多個唯一鍵。
引用(JPA的TopLink):
您可以在類級別使用與我目前使用遊戲框架下面的語法
@Entity
@Table(uniqueConstraints={@UniqueConstraint(columnNames={"username"})})
public class SomeEntity {
@Column(name = "username")
public String username;
}
還有hibernate和JPA 2.0註釋和這個模型作品沒有問題
@Entity
@Table(uniqueConstraints={@UniqueConstraint(columnNames = {"id_1" , "id_2"})})
public class class_name {
@Id
@GeneratedValue
public Long id;
@NotNull
public Long id_1;
@NotNull
public Long id_2;
}
希望它有幫助。
@Entity @Table(name = "stock", catalog = "mkyongdb",
uniqueConstraints = @UniqueConstraint(columnNames =
"STOCK_NAME"),@UniqueConstraint(columnNames = "STOCK_CODE") }) public
class Stock implements java.io.Serializable {
}
唯一約束只用於創建組合鍵,它將是唯一的。它將表示爲主鍵組合爲唯一的表。
注:在科特林用於註釋聲明陣列中的語法使用的arrayOf(...)
代替{...}
@Entity
@Table(uniqueConstraints=arrayOf(UniqueConstraint(columnNames=arrayOf("book", "chapter_number"))))
class Chapter(@ManyToOne var book:Book,
@Column var chapterNumber:Int)
注:作爲科特林1.2的其是可使用[...]
語法所以代碼變簡單得多
@Entity
@Table(uniqueConstraints=[UniqueConstraint(columnNames=["book", "chapter_number"])])
class Chapter(@ManyToOne var book:Book,
@Column var chapterNumber:Int)
你可以在類級別使用@UniqueConstraint,用於組合初步ry鍵在一張桌子裏。例如:
@Entity
@Table(name = "PRODUCT_ATTRIBUTE", uniqueConstraints = {
@UniqueConstraint(columnNames = {"PRODUCT_ID"}) })
公共類ProductAttribute {}
獨特的註釋應右屬性聲明之上放置。 UniqueContraints進入數據類聲明上方的@Table註釋。如下所示:
@Entity @Table(uniqueConstraints= arrayOf(UniqueConstraint(columnNames = arrayOf("col_1", "col_2")))) data class Action( @Id @GeneratedValue @Column(unique = true) val id: Long?, val col_1: Long?, val col_2: Long?, )
「但是有一些錯誤。 *總是*指定您在問題中遇到的錯誤。你有相關的信息可能會很好地幫助我們解決你的問題 - 不要把它留給自己。 – 2010-06-27 08:09:26
是否可以使用@id註釋? – Albinoswordfish 2010-06-27 08:09:26
我現在發佈了錯誤 – xyz 2010-06-27 08:13:40