假设有一张 table :
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语句,即如何把case表达式翻译成JPQL?
select field1,
case
when field2 = 1 then 'One'
when field2 = 2 then 'Two'
else 'Other number'
end,
field3
from tableA;
最佳答案
已在 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#New_in_JPA_2.0
关于java - JPQL 中有这样的 CASE 表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/427447/