我有两个实体:用户和地址。用户有一个“地址”属性:问题使用条件和提取类型渴望
@OneToMany (mappedBy="user", fetch=FetchType.EAGER)
public List<Adress> getAddress() {
return this.address;
}
public void setAddress(List<Adress> address) {
this.address= address;
}
的提取类型是渴望如上所示。
我想使用标准,以获得用户的列表如下:
List<User> p=session.createCriteria(User.class).list();
不幸的是它被重复的用户,如果用户有多个地址。在关闭提前取回的情况下,它不会重复。如何使用Criteria获取没有重复项目的用户列表?
我需要在几乎所有的方法中获取用户列表,否则,我得到许多懒惰没有会话打开...例外。无论如何,即使我会按照你所说的每个查询来完成,问题仍然存在。 – cracq
+1解释和我的更正。 –
@cracq:对于LazyInitializationExceptions而言,提前取出正是错误的解决方案。请参阅[我的答案](http://stackoverflow.com/questions/6709750/proper-usage-of-spring-mvc-3-with-hibernate-spring-orm/6710885#6710885)了解如何解决这些问题。查看“会话管理”。您可能还会发现[这个答案](http://stackoverflow.com/questions/6722158/best-way-to-handle-hibernate-sessions-in-a-layered-spring-mvc-web-application/6723767#6723767 )有用。 –