반응형
SQL JPA - 여러 열을 기본 키로 지정
Column이 ID를 구성하기를 원하는 경우.
SQL의 예:
CONSTRAINT [PK_NAME] PRIMARY KEY ([Column1],[Column2],[Column3])
어떻게 하면 Jpa Entity 클래스에서 할 수 있을까요?컬럼 asnom을 통해서요?
ID 필드를 다음과 같이 설정합니다.
value = Column1 + Column2 + Column3 // aint working.
복합 키에 대한 클래스가 필요합니다.
public class CompositeKey implements Serializable {
private int column1;
private int column2;
private int column3;
}
그런 다음 엔티티 클래스에서@IdClass
주석:
@Entity
@IdClass(CompositeKey.class)
public class EntityExample {
@Id
private int column1;
@Id
private int column2;
@Id
private int column3;
...
...
}
이거면 될 것 같아.
@jklee가 언급한 다른 솔루션도 있습니다.둘 다 일해요, 그건 선호도의 문제예요.
클래스의 모든 필드가 기본 키의 일부인 경우 솔루션은 매우 간단합니다(@raul-cuth에서 제공하는 확장 솔루션).
@Entity
@IdClass(EntityExample.class)
public class EntityExample implements Serializable {
@Id
private int column1;
@Id
private int column2;
@Id
private int column3;
}
사용하다@Embeddable
그리고.@EmbeddedId
.
예:
@Entity
public class Project implements Serializable {
@EmbeddedId ProjectId id;
}
@Embeddable
class ProjectId implements Serializable {
int departmentId;
long projectId;
}
상세한 것에 대하여는, http://www.objectdb.com/java/jpa/entity/id#Embedded_Primary_Key_ 를 참조해 주세요.
- 사용.
@IdClass
에 대한 주석@Entity
그 뒤에 이어지는 수업@Id
복합 기본 키의 일부인 개별 필드에 대한 주석입니다. - 다른 방법으로도 사용할 수 있습니다.
@Embeddable
복합 프라이머리 키의 개별 필드로 구성될 수 있는 클래스, 그리고 이 클래스의 참조를 속성으로 사용할 수 있습니다.@Embedded
의 주석.@Entity
도움이 됐으면 좋겠네요
휴지 상태의 Entity-Class-to-SQL-DDL-Script 생성기는 모든 필드를 정렬하며 정의에 표시되는 순서에 관계없이 테이블 정의와 인덱스/제약 정의를 필드 정렬 순서로 작성합니다.
테이블 정의의 필드 표시 순서는 그다지 중요하지 않을 수 있지만 복합 인덱스의 필드 순서는 매우 중요합니다.따라서 키 필드는 이름으로 정렬할 때 인덱스에 필요한 순서로 정렬되도록 이름을 지정해야 합니다).
언급URL : https://stackoverflow.com/questions/41143913/sql-jpa-multiple-columns-as-primary-key
반응형
'programing' 카테고리의 다른 글
React Native: 텍스트를 중앙에 배치하는 방법 (0) | 2023.03.07 |
---|---|
동기 XMLHttpRequest를 사용해야 하는 이유가 있습니까? (0) | 2023.03.07 |
WordPress 사용자가 확장자 없이 사진 업로드 (0) | 2023.03.07 |
x 날짜부터 종료 날짜까지 일 단위로 반복합니다. (0) | 2023.03.07 |
Gson을 사용한JSON 어레이 해석 방법 (0) | 2023.03.02 |