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
Vous devez vous connecter pour publier un commentaire.
La
personId
colonne est mappé à deux reprises : une fois à détenir la clé étrangère à la personne de l'adresse, à l'aide de laJoinColumn
annotation, et une fois en tant que régulierint
colonne dans l'adresse.Supprimer la
personId
champ de l'adresse. Si vous voulez avoir accès à la personne de l'ID de l'adresse, puis la carte de l'association bidirectionnelle OneToMany/ManyToOne association.OriginalL'auteur JB Nizet