У меня есть две таблицы с именами Person
и Address
.Эти таблицы я сопоставил один ко многим с помощью спящего режима с использованием аннотации.
Затем в моей родительской сущности Person
я создаю Set<Address>
для хранения дочернего класса.После этого я создаю набор адресов и устанавливаю Person
сущность, а также устанавливаю собственные значения Person.
Моя проблема заключается в том, что при сохранении родительская сущность дочерний объект не сохраняет в БД.
Вот мой код:
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;
Address.java
@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;
MyDAO:
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 );
}
Здесь человек добавляется в мою таблицу, но адрес не сохраняется.Почему?
двунаправленный это возможно, но в однонаправленном это моя проблема