Hibernate HQL中的连接,如何使用标准?
我有一个Address类类型和一个Employee类类型。地址有一个员工的集合 我在HQL有Hibernate HQL中的连接,如何使用标准?,hibernate,Hibernate,我有一个Address类类型和一个Employee类类型。地址有一个员工的集合 我在HQL有 Query query=session.createQuery("from Address a left join a.employees where a.zipcode like '%Work'" ); List<Address>addresses=query.list(); Query Query=session.createQuery(“从地址a左加入a.employees,其中
Query query=session.createQuery("from Address a left join a.employees where a.zipcode like '%Work'" );
List<Address>addresses=query.list();
Query Query=session.createQuery(“从地址a左加入a.employees,其中a.zipcode类似于“%Work”);
Listaddresses=query.list();
有5个地址实例,每个实例的集合中有5个Eemployee实例。因此我们得到25个成对的条目
我们看到,
addresses ArrayList<E> (id=42)
elementData Object[25] (id=59)
[0] Object[2] (id=61)
[0] Address (id=66)
[1] Employee (id=67)
...
地址数组列表(id=42)
elementData对象[25](id=59)
[0]对象[2](id=61)
[0]地址(id=66)
[1] 雇员(id=67)
...
我只打印了第一个条目
你是如何根据标准得到这个结果的?你可以试试这样的方法
Criteria crit = session.createCriteria(Address.class);
crit.setFetchMode("employees", FetchMode.JOIN);
crit.add(Restrictions.like("zipcode", "Work", MatchMode.END));
List<Address>addresses = crit.list();
Criteria crit=session.createCriteria(Address.class);
crit.setFetchMode(“雇员”,FetchMode.JOIN);
标准添加(限制,如(“zipcode”、“Work”、MatchMode.END”);
Listaddresses=crit.list();
然后我得到一个地址列表(每个地址都有一个初始化的集合),但没有一个对象列表[2]。@pred-fragmaric请你看看这个问题好吗?