【发布时间】:2017-11-03 15:51:59
【问题描述】:
我对 JPA 标准 API 有一点问题。我有一个实体:
@Entity
@Table(name = "PERSON")
public class Person implements Serializable
{
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator = "person_gen")
@Column(name = "ID")
private Long id;
@Column(name = "NAME")
private String name;
@Column(name = "AGE")
private Integer = age;
public Long getId()
{
return this.id;
}
public String getName()
{
return this.name;
}
public Integer getAge()
{
return this.age;
}
}
现在我想做一个类似这样的查询:
select * from Person where
(Person.Id) in (select Person.Id from Person where Person.Id = 15625) or
(Person.Id) in (select Person.Id from Person where Person.Name = 'Name') or
(Person.Id) in (select Person.Id from Person where Person.Age = 28)
有一些带有“或”语句的子查询。如何使用 JPA 条件查询来做到这一点?我尝试了很多方法,但它不起作用。
提前致谢。
【问题讨论】:
-
尝试不使用不必要的子查询:select * from Person where Person.Id = 15625 or Person.Name = 'Name' or Person.Age = 28