un à plusieurs unidirectionnel hibernate mapping ne suffit pas à sauver l'enfant de la table

J'ai deux tables appelé Person et Address. Ces tables, j'ai mappé un à plusieurs avec hibernate en utilisant l'annotation.

Ensuite dans mon entité mère Person - je créer un Set<Address> pour maintenir l'enfant en classe. Après cela, j'ai créer un jeu d'adresse et jeu de Person entité et également définir ses propres valeurs.

Mon problème est que lorsque je suis enregistrer l'entité mère de l'enfant n'est pas enregistrer dans la bd.

Voici mon code:

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;

Mon 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 );
    }

Ici personne est d'ajouter dans ma table, mais l'adresse n'est pas enregistrée. Pourquoi?

bidirectionnel c'est possible, mais dans unidirectionnel est mon problème

OriginalL'auteur jaleel | 2011-10-19