J'essaie d'implémenter mon modèle en utilisant les annotations d'hibernation. J'ai 3 classes, l'image, la personne, et les étiquettes. Tags est une table composée de 4 champs, un id, personId, imageId, et un createdDate. Personne a le champs nom, id, date de naissance, etc. Ma classe d'image est définie comme suit:Hibernate Annotations avec une collection
@Entity
@Table(name="Image")
public class Image {
private Integer imageId;
private Set<Person> persons = new HashSet<Person>();
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID")
public Integer getImageId() {
return imageId;
}
public void setImageId(Integer imageId) {
this.imageId = imageId;
}
@ManyToMany
@JoinTable(name="Tags",
joinColumns = {@JoinColumn(name="imageId", nullable=false)},
inverseJoinColumns = {@JoinColumn(name="personId", nullable=false)})
public Set<Person> getPersons() {
return persons;
}
public void setPersons(Set<Person> persons) {
this.persons = persons;
}
Si je supprime les annotations sur la méthode getPersons() je peux utiliser les classes et ajouter et supprimer des enregistrements. Je veux aller chercher toutes les étiquettes avec l'image et j'essaye d'utiliser un ensemble. Je continue à obtenir l'erreur suivante:
org.hibernate.LazyInitializationException - failed to lazily initialize a collection of role: com.exmaple.persons, no session or session was closed
Quelqu'un peut-il me aider et s'il vous plaît laissez-moi savoir ce que je fais mal?
Merci
Im va accepter cette réponse. J'apprécie l'aide. Je lis encore les chapitres 10 et 13 dans la documentation du printemps. Je posterai des mises à jour quand j'aurai une chance. – blong824