2017-06-22 79 views
0

使用JPA createQuery()時,我發現我們可以同時使用類名和實體名來獲取數據庫數據。JPA createQuery()

這是通過類名

em.createQuery( 「從com.model.Stuff的」, Stuff.class).getResultList();

這是從實體名稱

em.createQuery( 「從東西的」, Stuff.class).getResultList();

這是orm.xml中

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

不管我用哪一個,JPA可以得到我從orm.xml中或從我把在課堂上標註使用特定類。

  1. 那麼,爲什麼我必須把Stuff.class放在參數中呢?

  2. 因爲它只能在createQuery()中至多放兩個參數,如果我不得不選擇兩個Class來做一些連接呢?

    我不能做到這一點

    em.createQuery( 「從東西S,事t其中s.id = t.stuff_id」,Stuff.class,Thing.class).getResultList();

  3. em.createQuery( 「從東西的」, Stuff.class).getResultList();

    等於

    em.createQuery .getResultList(, Stuff.class 「從東西■選擇的」)();

感謝給我一些幫助。

回答

1
  1. Stuff.class進入參數來確定什麼類型的查詢結果對象。一個查詢可以是無數複雜的嵌套類型,但它最終必須返回一種類型的對象。

  2. 然後,您必須創建第三個Java類型,它將成爲連接的結果。想想看,加入後應該是什麼類型的結果?

  3. 據我所知,是