문제

자동 생성된 기본 키뿐만 아니라 다른 두 필드로 구성된 고유한 복합 키도 있는 엔터티를 만들고 싶습니다.JPA에서 이 작업을 어떻게 수행합니까?
기본 키를 다른 테이블에서 외래 키로 사용해야 하는데 이를 복합화하면 좋지 않기 때문에 이렇게 하고 싶습니다.

다음 코드 조각에서는 고유한 명령과 모델이 필요합니다.pk는 물론 기본 키입니다.

@Entity
@Table(name = "dm_action_plan")
public class ActionPlan {
    @Id
    private int pk;
    @Column(name = "command", nullable = false)
    private String command;
    @Column(name = "model", nullable = false)
    String model;
}
도움이 되었습니까?

해결책

당신이 사용할 수있는 @UniqueConstraint 이 같은 :

@Entity
@Table(name = "dm_action_plan",
       uniqueConstraints={ @UniqueConstraint(columnNames= "command","model") } )
public class ActionPlan {
    @Id
    private int pk;

    @Column(name = "command", nullable = false)
    private String command;

    @Column(name = "model", nullable = false)
    String model;
}

이렇게 하면 JPA 구현이 고유 제약조건에 대한 DDL을 생성할 수 있습니다.

다른 팁

@GeneratedValue를 사용하여 키가 생성됨을 나타내고 @UniqueConstraint를 사용하여 단일성을 표현합니다.

@Entity
@Table(name = "dm_action_plan"
       uniqueConstraint = @UniqueConstraint({"command", "model"})
)
public class ActionPlan {
    @Id
    @GeneratedValue
    private int pk;
    @Column(name = "command", nullable = false)
    private String command;
    @Column(name = "model", nullable = false)
    String model;
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top