![](/img/trans.png)
[英]How to filter entities with composite PK by a list of said PK using HQL?
[英]fetching multiple entities using HQL
是否可以使用HQL提取多个实体? 我发现自己编写了很多代码,例如:
obj1 = HQL1;
if (obj1 == null)
obj2 = HQL2;
所以我想知道是否有可能将obj1 == null
检查折叠到HQL查询中,并在条件为真的情况下同时获取obj2。
编辑:
考虑如下代码:
Animal cat, dog = null;
cat = currentSession.createQuery("from Cat where id = 1").uniqueResult();
if (cat == null)
dog = currentSession.createQuery("from Dog where id = 2").uniqueResult();
我的问题是,是否有写一个HQL语句来抓取两种方式cat
与dog
在同一时间(但只取dog
,如果cat
是null
的,当然)。
如对您的问题的评论中所述,您的问题确实缺乏上下文。 因此很难回答。
您可以执行多态查询。 这是特定于Hibernate的,而不是JPA的全部。
List animals = session.createQuery( "from Animal" ).list()
这将返回您所有的动物,包括猫和狗。
从那里可以根据需要构造限制。 您似乎想要的限制类型的问题是,它可能需要一个子查询,这通常会导致DB服务器上的查询计划效率低下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.