나는 약간의 웹 유틸리티를 생성하면서 레거시 데이터베이스를 매핑하면서 Hibernate/Spring을 처음 사용하기 때문에 동료들에게 도움이 될 것입니다. 엔티티를 매핑하고 기본 데이터에 액세스 할 수 있었기 때문에 몇 가지 문제가있었습니다. 간단히 요약하면, 나는 두 entites, 고객Hibernate : @OneToMany/@ManyToOne 매핑 문제 (엔티티 기본 키를 사용하지 않음)
@Entity
public class Customer implements Serializable{
@Id
@Column(name = "RecordID")
private Integer id;
@Column(name = "CUSTOMERNAME1")
private String name;
@OneToMany
@JoinColumn(name="CUSTOMER1", referencedColumnName="CUSTOMERNAME1")
private List<Contract> contracts;
}
와 계약을 체결 한 :
@Entity
public class Contract implements Serializable {
@Id
@Column(name = "RECORDID") //RecordID
private Integer id;
@Column(name = "CONTRACTID1") //ContractID1
private String contractId;
@Column(name = "CUSTOMER1") //Customer1
private String customerName;
//@ManyToOne
//private Customer customer; // how can I write the reverse mapping?
}
계약에 대한 고객의 매핑 작동 (한 고객은 내가 모두 사용하여 그들을 얻을 수 있습니다, 많은 계약을 할 수 있습니다 고객의 계약 필드 목록을 표시하지만 제 질문은 어떻게 취소 할 수 있습니까? 즉, 계약 대상 고객을 매핑 할 수 있습니까?
당신이 정의하는 "많은"쪽은 항상 관계의 소유자이다, 그래서 가입 그 쪽 테이블. 이 예제에서는 실제로 조인 테이블이 필요하지 않습니다. 여러 측면의 필드는 소유자의 참조를 저장할 수 있습니다. – toto2