链接实体中的 JPQL 连接条件 class
JPQL join condition in linked Entity class
我正在使用以下 SQL 加入员工,user_projects 和 project_master
SELECT DISTINCT usr.user_number,
emp.emp_name
FROM employees emp
LEFT JOIN user_projects usr
ON (emp.user_number = usr.user_number)
JOIN project_master mast
ON (usr.project_id = mast.project_id)
WHERE mast.active = 'Y'
AND emp.user_number = 'SMITH'
在 Employee 实体中,我将以下 JPQL 定义为 namedQuery
@NamedQuery(name = "Employee.findProjects", query = " select DISTINCT u.userNumber,e.empName" +
" from Employee e LEFT JOIN e.userProjectsList u where e.userNumber='SMITH' ")
不确定如何link UserProjects 和 ProjectMaster 创建 where 条件
mast.active = 'Y' in Employee entity's findProjects namedQuery
如何在员工实体中加入 UserProjects 和 ProjectMaster class?
实体
实体员工
@Table(name = "EMPLOYEES")
public class Employee implements Serializable {
@Id
@Column(name = "USER_NUMBER", nullable = false)
private String userNumber;
@Column(name = "EMP_NAME")
private String empName;
@OneToMany(mappedBy = "employee")
private List<UserProjects> userProjectsList;
实体用户项目
@Table(name = "USER_PROJECTS")
public class UserProjects implements Serializable {
@Id
@Column(name="PROJECT_ID", nullable = false, insertable = false,
updatable = false)
private String projectId;
@Id
@Column(name="USER_NUMBER", nullable = false, insertable = false, updatable = false)
private String userNumber;
@ManyToOne
@JoinColumn(name = "PROJECT_ID", referencedColumnName = "PROJECT_ID")
private ProjectMaster projectMaster;
实体项目主管
@Table(name = "PROJECTMASTER")
public class ProjectMaster implements Serializable {
@Id
@Column(name="PROJECT_ID", nullable = false)
private String projectId;
@Column(name="PROJECT_DESCRIPTION")
private String projectDesc;
@Column(name="ACTIVE")
private String active;
select DISTINCT u.userNumber,e.empName from Employee e LEFT JOIN
e.userProjectsList u JOIN u.projectMaster pm
where e.userNumber='SMITH' AND pm.active='Y'
这不是工作吗?
我正在使用以下 SQL 加入员工,user_projects 和 project_master
SELECT DISTINCT usr.user_number,
emp.emp_name
FROM employees emp
LEFT JOIN user_projects usr
ON (emp.user_number = usr.user_number)
JOIN project_master mast
ON (usr.project_id = mast.project_id)
WHERE mast.active = 'Y'
AND emp.user_number = 'SMITH'
在 Employee 实体中,我将以下 JPQL 定义为 namedQuery
@NamedQuery(name = "Employee.findProjects", query = " select DISTINCT u.userNumber,e.empName" +
" from Employee e LEFT JOIN e.userProjectsList u where e.userNumber='SMITH' ")
不确定如何link UserProjects 和 ProjectMaster 创建 where 条件
mast.active = 'Y' in Employee entity's findProjects namedQuery
如何在员工实体中加入 UserProjects 和 ProjectMaster class?
实体
实体员工
@Table(name = "EMPLOYEES")
public class Employee implements Serializable {
@Id
@Column(name = "USER_NUMBER", nullable = false)
private String userNumber;
@Column(name = "EMP_NAME")
private String empName;
@OneToMany(mappedBy = "employee")
private List<UserProjects> userProjectsList;
实体用户项目
@Table(name = "USER_PROJECTS")
public class UserProjects implements Serializable {
@Id
@Column(name="PROJECT_ID", nullable = false, insertable = false,
updatable = false)
private String projectId;
@Id
@Column(name="USER_NUMBER", nullable = false, insertable = false, updatable = false)
private String userNumber;
@ManyToOne
@JoinColumn(name = "PROJECT_ID", referencedColumnName = "PROJECT_ID")
private ProjectMaster projectMaster;
实体项目主管
@Table(name = "PROJECTMASTER")
public class ProjectMaster implements Serializable {
@Id
@Column(name="PROJECT_ID", nullable = false)
private String projectId;
@Column(name="PROJECT_DESCRIPTION")
private String projectDesc;
@Column(name="ACTIVE")
private String active;
select DISTINCT u.userNumber,e.empName from Employee e LEFT JOIN
e.userProjectsList u JOIN u.projectMaster pm
where e.userNumber='SMITH' AND pm.active='Y'
这不是工作吗?