JPA createQuery()

时间:2017-06-22 02:22:22

标签: java jpa createquery

使用JPA createQuery()时,我发现我们可以使用类名和实体名来获取数据库数据。

这是按类名

  

em.createQuery("来自com.model.Stuff s",       Stuff.class).getResultList();

这是来自实体名称

  

em.createQuery("来自Stuff s",       Stuff.class).getResultList();

这是在orm.xml中

<entity class="com.model.Stuff" name="Stuff">

无论我使用哪一个,JPA都可以从orm.xml或我在课堂上的注释中获取我正在使用的特定类。

  1. 那么为什么我必须将Stuff.class放在参数中?

  2. 因为它只能在createQuery()中放入最多两个参数,如果我必须选择两个Class进行一些连接怎么办?

    我不能这样做

      

    em.createQuery(&#34;来自Stuff s,Thing t,其中s.id = t.stuff_id&#34;,Stuff.class,Thing.class).getResultList();

  3.   

    em.createQuery(&#34;来自Stuff s&#34;,       Stuff.class).getResultList();

    等于

      

    em.createQuery(&#34;从Stuff s&#34;中选择s,       Stuff.class).getResultList();

  4. 感谢您给我一些帮助。

1 个答案:

答案 0 :(得分:1)

  1. Stuff.class进入参数以确定查询结果对象的类型。对于许多嵌套类型,查询可能无限复杂,但它最终必须返回一种类型的对象。

  2. 然后,您必须创建将成为连接结果的第三个Java类型。想一想,加入后结果应该是什么类型?

  3. 据我所知,是的