[英]Hibernate left join returns objects
我正在做一个查询,它返回对象而不是自定义类:
Query q = em.createQuery("FROM Author a LEFT JOIN a.documents d LEFT JOIN d.personDocuments pd WHERE pd.person = :person ORDER BY a.lastName");
q.setParameter("person", person);
return new HashSet<Author>(q.getResultList());
我希望q.getResultList()将返回Authors(及其链接的文档)列表,但这是对象列表。 我究竟做错了什么?
未键入Query中的方法getResultList()
。
因此,似乎它仅返回Objects
(实际上是您的情况下Author
的实例),您必须手动将其强制转换为Author
。 (例如,您可以通过检查实例上的getClass()
来检查Object
真正含义。)
您可以使用TypedQuery进行类型化查询,这将在需要时使用。
TypedQuery<Author> q = em.createQuery("SELECT a FROM Author a LEFT JOIN a.documents d LEFT JOIN d.personDocuments pd WHERE pd.person = :person ORDER BY a.lastName", Author.class);
q.setParameter("person", person);
return new HashSet<Author>(q.getResultList());
objectdb的本教程对此进行了很好的介绍。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.