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
. 둘 사이에 큰 차이가있다.