Я пытаюсь реализовать свою модель, используя аннотации гибернации. У меня есть 3 класса, изображение, человек и теги. Теги - это таблица, состоящая из 4 полей: id, personId, imageId и createDate. У человека есть поля имени, идентификатора, даты рождения и т. Д. Мой класс изображения определяется следующим образом:
@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;
}
Если я удаляю аннотации в методе getPersons (), я могу использовать классы, добавлять и удалять записи. Я хочу получить все теги с изображением, и я пытаюсь использовать набор. Я продолжаю получать следующую ошибку:
org.hibernate.LazyInitializationException - failed to lazily initialize a collection of role: com.exmaple.persons, no session or session was closed
Может кто-нибудь помочь мне и сообщить, что я делаю не так?
Спасибо