1

スキーマ: 各従業員は多数の電話番号を持つことができ、各電話番号は従業員に属します (1 対多の関係)。

次の JPQL クエリを使用する: SELECT e, p FROM Employee e JOIN e.phones p,

List<Object[]>このクエリの結果をアプリケーション コードでどのように処理しますか? アプリ内の各従業員とその電話番号へのアクセスに関して。そこからコードList<Object[]>?使用する

em.createNamedQuery("..").getResultList().get(1)[]
// or
em.createNamedQuery("..").getResultList().get(2)[0]

エラーになります。

4

1 に答える 1

1

最も可能性の高い問題getResultList()は、非ジェネリックを返すため、最初Listにキャストする必要があることですList<Object[]>

リストに少なくとも 1 つのエントリがあると仮定すると、これは機能するはずです。

Employee e = (Employee)((List<Object[]>)em.createNamedQuery("..").getResultList()).get(0)[0];

更新

参考までに: 使用する JPA のバージョンによっては、List<Object>代わりに が得られる場合があります。その場合、値をObject[]次のようにキャストできます。

Employee e = (Employee)((Object[])em.createNamedQuery("..").getResultList().get(0))[0];
于 2012-05-11T15:14:37.493 に答える