【发布时间】:2011-12-10 18:54:52
【问题描述】:
我有两个名为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;
我的 DAO:
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 );
}
此人正在我的表中添加,但地址未保存。为什么?
双向是可能的,但单向是我的问题
【问题讨论】:
标签: hibernate annotations one-to-many