繁体   English   中英

使用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语句来抓取两种方式catdog在同一时间(但只取dog ,如果catnull的,当然)。

如对您的问题的评论中所述,您的问题确实缺乏上下文。 因此很难回答。

您可以执行多态查询。 这是特定于Hibernate的,而不是JPA的全部。

List animals = session.createQuery( "from Animal" ).list()

这将返回您所有的动物,包括猫和狗。

从那里可以根据需要构造限制。 您似乎想要的限制类型的问题是,它可能需要一个子查询,这通常会导致DB服务器上的查询计划效率低下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM