Java의 @UniqueConstraint 주석
Java Bean이 있습니다. 이제 필드가 고유해야합니다. 다음 코드를 사용하고 있습니다.
@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;
}
나는 현재 최대 절전 모드 및 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;
}
도움이 되었기를 바랍니다.
참고 : Kotlin에서는 주석에서 배열을 선언하는 구문이 arrayOf(...)
대신{...}
@Entity
@Table(uniqueConstraints=arrayOf(UniqueConstraint(columnNames=arrayOf("book", "chapter_number"))))
class Chapter(@ManyToOne var book:Book,
@Column var chapterNumber:Int)
참고 : Kotlin 1.2부터는 [...]
구문 을 사용 하여 코드를 훨씬 간단하게 만들 수 있습니다
@Entity
@Table(uniqueConstraints=[UniqueConstraint(columnNames=["book", "chapter_number"])])
class Chapter(@ManyToOne var book:Book,
@Column var chapterNumber:Int)
Way1 :
@Entity
@Table(name = "table_name", uniqueConstraints={@UniqueConstraint(columnNames = "column1"),@UniqueConstraint(columnNames = "column2")})
-여기서 Column1과 Column2는 모두 고유 제약 조건으로 작동합니다. 예 : 언제든지 column1 또는 column2 값이 일치하면 UNIQUE_CONSTRAINT 오류가 발생합니다.
Way2 :
@Entity
@Table(name = "table_name", uniqueConstraints={@UniqueConstraint(columnNames ={"column1","column2"})})
-column1과 column2 결합 된 값은 모두 고유 한 제약 조건으로 작용합니다.
@Entity @Table(name = "stock", catalog = "mkyongdb",
uniqueConstraints = @UniqueConstraint(columnNames =
"STOCK_NAME"),@UniqueConstraint(columnNames = "STOCK_CODE") }) public
class Stock implements java.io.Serializable {
}
복합 키를 생성하는 데만 사용되는 고유 제한 조건은 고유하며, 고유 키로 결합 된 기본 키로 테이블을 표시합니다.
테이블의 결합 된 기본 키에 대해 클래스 수준에서 @UniqueConstraint를 사용할 수 있습니다. 예를 들면 다음과 같습니다.
@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?,
)
참고URL : https://stackoverflow.com/questions/3126769/uniqueconstraint-annotation-in-java
'Programing' 카테고리의 다른 글
슬러그 (URL 문자열)를 만드는 PHP 함수 (0) | 2020.06.13 |
---|---|
'구문 분석'의 반대말은 무엇입니까? (0) | 2020.06.13 |
Objective C를 사용하여 iOS 9에서 상태 표시 줄 텍스트 색상을 밝게 변경 (0) | 2020.06.13 |
URL에서 이미지로드 (0) | 2020.06.13 |
Android에서 OAuth 2.0에 대한 서명 인증서 지문 (SHA1)을 얻는 방법은 무엇입니까? (0) | 2020.06.13 |