Person
과 Address
이라는 두 개의 테이블이있다. 이 테이블들은 을 하나의 many to에 매핑하고 주석을 사용하여 hibernate를 사용했다.하나의 많은 단방향 hibernate 매핑은 자식 테이블을 저장하지 않는다
다음 부모 엔티티 Person
나는 하위 클래스를 보유하기 위해 Set<Address>
을 만듭니다. 그런 다음 주소 세트를 만들고 Person
엔티티로 설정하고 Person 고유 값을 설정합니다.
내 문제는 부모 엔티티를 저장할 때 자식이 DB에 저장되지 않는다는 것입니다.
public Person addNewPerson() {
Person per = new Person();
per.setName("aaaa person");
Set<Address> addressSet = new HashSet<Address>();
for(int i = 0; i<=3;i++){
Address ad = new Address();
ad.setAddress("aaa "+i);
addressSet.add(ad);
}
per.setAddresses(addressSet);
getHibernateTemplate().save(per);
}
:
@Entity
@Table(name = "ADDRESS")
public class Address {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "addressId")
private int id;
@Column(name = "address")
private String address;
@Column(name="personId")
private int personid;
내 DAO Address.java
Person.java
@Entity
@Table(name="PERSON")
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="personId")
private int id;
@Column(name="personName")
private String name;
@OneToMany(cascade =CascadeType.ALL,fetch = FetchType.EAGER)
@JoinColumn(name="personId")
private Set <Address> addresses;
: 여기
내 코드입니다사람이 내 테이블에 추가하고 있지만 주소는 저장되지 않습니다. 왜?
양방향이 가능하지만, 단방향 내 personId
열 두 번 매핑되는 문제
주소에서 personId를 제거한 다음 위에서 언급 한 절차를 반복하십시오 – jaleel
하나의 응용 프로그램을 제안 할 수 있습니까? – jaleel
미안 .. 괜찮아요 .. – jaleel