【发布时间】:2020-05-21 09:34:43
【问题描述】:
我只是想学习 JPA。我有三个实体类看起来像这样。实体类中提到了关系
@Entity
@Table(name="EMPLOYEE")
public class Employee {
@Id
@Column(name="EMP_ID")
private Integer empId;
@Column(name="EMP_NAME")
private String empName;
@Column(name="EMP_ADDR")
private String address;
@OnetoOne
@JoinColumn(name="PROJ_ID")
private Project project;
@OnetoOne
@JoinColumn(name="TASK_ID")
private Task task;
}
@Entity
@Table(name="PROJECT")
public class Project {
@Id
@Column(name="PROJ_ID")
private Integer projectId;
@Column(name="PROJ_NAME")
private String projectName;
@Column(name="PROJ_STATUS")
private String projectStatus;
}
@Entity
@Table(name="TASK")
public class Task {
@Id
@Column(name="TASK_ID")
private Integer taskId;
@Column(name="TASK_NAME")
private String taskName;
@Column(name="TASK_STATUS")
private String taskStatus;
}
我的预期查询是select * from Employee a , Task b where a.proj_id= ? and a.task_id=b.task_id
在我的员工存储库类中,我有一个方法
findEmployeeByProjectProjectId(int projectId).
但我得到了一些多余的数据,不知道如何处理a.task_id=b.task_id 的情况。
不确定我做错了什么。请提出解决方案,或者如果我做错了什么,请纠正我。
【问题讨论】:
-
只是一个简单的问题,您想要的预期输出是什么?
EMPLOYEE&PROJECT的所有数据或只有EMPLOYEE有任务的人 -
仅来自有任务的员工
-
如果可能的话,如果任务名称也显示在里面就好了。
标签: hibernate spring-boot jpa spring-data