【发布时间】:2016-08-09 02:14:06
【问题描述】:
我想通过 JPQL 触发以下查询。我是 JPA 的新手,正在学习 JPQL,但卡在了这个查询中。
SELECT * FROM users
WHERE userid NOT IN (SELECT userid FROM applicants)
AND gender = 'MALE' AND (firstname like '%R%' OR lastname like '%S%');
这里的性别和姓名参数是动态传递的,但这里我保持静态。
我的课程片段是:
这是我的用户类
用户类:
@Table(name = "users")
public class User{
@Id
@GeneratedValue
private long userId;
@Column(unique = true, nullable = false)
private String email;
private String firstName;
private String middleName;
private String lastName;
private String gender;
private Timestamp appliedOn;
}
Applicant 类与 User 类有 OneToOne 关系,join 列是 userid。
申请人类别:
@Entity
@Table(name = "applicants")
public class Applicant{
@Id
private long applicantId;
@OneToOne
@JoinColumn(name = "userId")
private User user;
@ManyToOne
@JoinColumn(name = "subCourseId")
private SubCourse course;
@ManyToOne
@JoinColumn(name = "collegeId")
private College college;
}
【问题讨论】:
标签: postgresql jpa hql jpql