次のようなテーブルがあるとします。
TableA:Field1, Field2, Field3
および関連するJPAエンティティクラス
@Entity
@Table(name="TableA")
public class TableA{
@Id
@Column(name="Field1")
private Long id;
@Column(name="Field2")
private Long field2;
@Column(name="Field3")
private Long field3;
//... more associated getter and setter...
}
この SQL に大まかに翻訳される JPQL ステートメントを作成する方法、つまりケース式を JPQL に翻訳する方法はありますか?
select field1,
case
when field2 = 1 then 'One'
when field2 = 2 then 'Two'
else 'Other number'
end,
field3
from tableA;
ベストアンサー1
JPA 2.0で追加されました
使用法:
SELECT e.name, CASE WHEN (e.salary >= 100000) THEN 1 WHEN (e.salary < 100000) THEN 2 ELSE 0 END FROM Employee e
参照: http://en.wikibooks.org/wiki/Java_Persistence/JPQL_BNF#JPA_2.0 の新機能