JPA 2.0仕様を読んだところ、次のことが有効であるはずです。
select e.employeeId, new com.foo.Custom(e.employeeName, e.employeeCity) from Employee e
ただし、Hibernate は最初のコンマを引用して、このクエリについて文句を言います。選択した式の順序を逆にしても、まだ文句を言います:
select new com.foo.Custom(e.employeeName, e.employeeCity), e.employeeId from Employee e
しかし、コンストラクター式のみを選択すると、機能します。
select new com.foo.Custom(e.employeeName, e.employeeCity) from Employee e
JPA 2.0 仕様の文法では許可されているように見えますが、SELECT 句の唯一の式ではないコンストラクター式を使用する JPQL クエリの Web 上の例を探しても無駄でした。選択したレコードのすべてのデータをカプセル化する別のモノリシック カスタム クラスを作成する以外に、この回避策を知っている人はいますか?