2014-10-31 37 views
0

我有一个Address类型和一个Employee类型。地址有一个员工的集合。加入HQL,如何使用Criteria?

我在HQL,

Query query=session.createQuery("from Address a left join a.employees where a.zipcode like '%Work'"); 
List<Address>addresses=query.list(); 

有5分地址的情况下,每一个与它5个Eemployee实例是collection.So我们得到了对25个条目。

我们看到,

addresses  ArrayList<E> (id=42) 
     elementData  Object[25] (id=59) 
       [0]  Object[2] (id=61) 
         [0]  Address (id=66) 
         [1]  Employee (id=67) 
... 

我只印制的第一项。

你如何用Criteria得到这个结果?

回答

0

你可以尝试这样的事情

Criteria crit = session.createCriteria(Address.class); 
crit.setFetchMode("employees", FetchMode.JOIN); 
crit.add(Restrictions.like("zipcode", "Work", MatchMode.END)); 
List<Address>addresses = crit.list(); 
+0

然后我得到的地址(每一个初始化的集合)的列表,而不是一个对象的名单[2]。 – ericj 2014-10-31 09:06:48

+0

@PredragMaric你可以看看这个问题http://stackoverflow.com/questions/27602318/hibernate-myinterceptoronflushdirty-is-never-called请问? – 2014-12-22 16:45:26