Hibernate 条件多次返回同一对象
我有3张具有多对多关系的表。User、Compurets和第三个表是连接其他表的User_Comp。一个用户可以通过id将多台计算机分配给他。所以在那个里的表中有几个用户实体 这是我的桌子: 对于获取所有用户,此方法提供正确的数据Hibernate 条件多次返回同一对象,hibernate,criteria,Hibernate,Criteria,我有3张具有多对多关系的表。User、Compurets和第三个表是连接其他表的User_Comp。一个用户可以通过id将多台计算机分配给他。所以在那个里的表中有几个用户实体 这是我的桌子: 对于获取所有用户,此方法提供正确的数据 public List<User> getAllUsers() { Session session = HibernateUtil.openSession(); return session.createQuery("fr
public List<User> getAllUsers() {
Session session = HibernateUtil.openSession();
return session.createQuery("from User").list();
}
问题:为了从表用户获取数据或为每个用户获取唯一的记录,我必须做什么?我猜User>computer关系没有设置为lazy,因此它在外部联接中加载所有计算机,以从用户填充getComputers 你可以用
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
仅通过每个实体迭代一次
User {Id= '1', login= 'user1', password= '1', name= 'userOne'…
User {Id= '2', login= 'user2', password= '2', name= 'userTwo'…
User {Id= '3', login= 'user3', password= '3', name= 'userThree'…
User {Id= '3', login= 'user3', password= '3', name= 'userThree'…
User {Id= '3', login= 'user3', password= '3', name= 'userThree'…
User {Id= '3', login= 'user3', password= '3', name= 'userThree'…
User {Id= '4', login= 'user4', password= '4', name= 'userFour'…
User {Id= '5', login= 'user5', password= '5', name= 'userFive'…
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);