봄 부팅 JPA : 자신의 클래스와 많은 관계로 많은?

AY :

나는 봄 부팅 및 JPA 함께 일하고 있어요 그리고 난 두 테이블간에 다 대다 관계를 가지고있다. 이 관계는 또한 내가이 관계 자체 클래스했습니다, 그래서 자신의 특성을 가질 필요가있다. 또한 모든 클래스에 대한 저장소가 있습니다. 비 원시적 필드를 사용하는 경우 또한, 어떻게 제대로 외래 키를 매핑 할 것인가?

내 질문 : 봄 부팅이 나에게 오류를 제공하지 않도록하는 방법이 실현합니까? 나는 봄 부팅 및 JPA 모두 새로운 해요. 다음은 코드 아래입니다 :

import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

import javax.persistence.*;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

@Entity //this is a relationship type. Does an annotation for relationship types exist?
@Embeddable
@Getter
@Setter
@NoArgsConstructor
public class RelationshipType implements Serializable {

    @Id
    private Long id;

    @NotNull
    @JoinColumn(name="id")
    private Class1 class1;

    @NotNull
    @JoinColumn(name="code")
    private Class2 class2;


    private Integer anotherNumber;
}
InsertKnowledge :

그것은 아래의 예제와 유사합니다. 당신은 다른 테이블에 관계를 설정해야 @ManyToOne원하는 얻을 @ManyToMany직원과 수 사이의 관계를.

@Entity
@Getter
@Setter
@Table(name = "employees_numbers")
public class EmployeeNumber {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private Long id;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "employee_id", nullable = false)
    private Employee employee;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "number_id", nullable = false)
    private Number number;

    @Column(name = "extra_column", nullable = false)
    private String extraColumn;
}

사이드 참고 : 사용하지 않는 @NotEmpty정수에. 그것은 특별히 컬렉션을 위해 만들어졌다.

사이드 노트 2 : 여기 절름발이에 가서 추가하는 것입니다 당신이 원하는 말할 것이다 nullable = false열에과로 표시하지 @NotNull. 둘 사이에 큰 차이가있다.

추천

출처http://43.154.161.224:23101/article/api/json?id=338546&siteId=1