使用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或我在课堂上的注释中获取我正在使用的特定类。
那么为什么我必须将Stuff.class放在参数中?
因为它只能在createQuery()中放入最多两个参数,如果我必须选择两个Class进行一些连接怎么办?
我不能这样做
em.createQuery(&#34;来自Stuff s,Thing t,其中s.id = t.stuff_id&#34;,Stuff.class,Thing.class).getResultList();
是
em.createQuery(&#34;来自Stuff s&#34;, Stuff.class).getResultList();
等于
em.createQuery(&#34;从Stuff s&#34;中选择s, Stuff.class).getResultList();
感谢您给我一些帮助。
答案 0 :(得分:1)
Stuff.class
进入参数以确定查询结果对象的类型。对于许多嵌套类型,查询可能无限复杂,但它最终必须返回一种类型的对象。
然后,您必须创建将成为连接结果的第三个Java类型。想一想,加入后结果应该是什么类型?
据我所知,是的