JPA 2.0の新機能 TypedQueryを試す

JPAはQueryの戻り値がGenericsを使用していなかった。

複数件を返すQuery#getResultList()は戻り値はList。
1件だけ返すQuery#getSingleResult()はObject。

JPA1.0はアノテーションJ2SE 5.0を前提としていたのになぜか根本的なところで配慮が足りなかった。


JPA2.0では型の安全性の警告の抑制をする必要がなくなった。

http://shin.cside.com/diary/2009/1114-01.png

見てわかるとおり引数にClassを指定可能になった。TypedQueryはQueryを継承している。