通过JPA查询

时间:2017-09-12 07:25:47

标签: hibernate jpa

我有一个通过JPA获取数据的问题,

假设我有一个实体,并且该实体与其他相关实体具有OnetoOne关系以及OneToMany。

Hibernate或JPA中是否有任何API,如果我为Entity类和相关实体类设置了少量值,我会得到一个与这些值匹配的Entity类列表。

例如:

Entity e = new Entity();
e.setVar1("Test1");
e.setVar2("Test2");

SiblingEntity se = new SiblingEntity(); // OnetoOne with Entity class
se.setVar1("Var1");

e.setSiblingEntity(se);

ChildEntity ce = new ChildEntity(); // OnetoMany with Entity class
ce.setVar1("value1");

e.getChildEntities().add(ce);

现在我们有一个带有兄弟实体和子实体的根实体e。

是否有任何API会给我以下结果?像下面提到的那样:

列表elist = entityDAO.getEntityList(e);

elist必须包含满足上述条件的Entity类列表。

由于

1 个答案:

答案 0 :(得分:0)

您希望通过示例进行一种查询,我不知道能够使用JPA执行此操作的框架,但是当您执行任务时,JQL可以非常简单地表达:

entityManager.createQuery(
   "select e from Entity e where e.var1 = 'Test1' 
    and e.var2 = 'Test2' and e.siblingEntity.var1 = 'Var1' 
    and e.childEntity.var1 = 'value1'").getResultList();
如果正确定义了实体关系,

应该提供您想要的东西。

搜索QBE和JPA我找到以下链接:

hibernate-query-example-qbe

也许这是根据你的意图。