【发布时间】:2011-03-23 01:27:56
【问题描述】:
我正在尝试使用休眠注释来实现我的模型。我有 3 个类,图像,人物和标签。 Tags 是一个由 4 个字段组成的表,一个 id、personId、imageId 和一个 createdDate。人物有姓名、身份证、生日等字段。我的图像类定义如下:
@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
有人可以帮助我,让我知道我做错了什么吗?
谢谢
【问题讨论】:
标签: java hibernate configuration collections annotations