我有三个表Client,Task和TaskClient TaskClient将客户端作为外键 下面是豆子:
@Entity
@Table(name="TaskClient")
public class TaskClient implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name="id", unique=true, nullable=false)
private Integer id;
@ManyToOne
@JoinColumn(name="client", unique=false)
private Client client;
@ManyToOne
@JoinColumn(name="task", unique=false)
private Task task;
}
以下是TaskClientDAO:
@Repository
public interface TaskCliebtDAO extends JpaRepository<TaskClient, Serializable> {
@Query("")
public List<ClientBean> findClientAvailableForTask(Integer taskId);
}
在这里,我想搜索与给定模板ID无关的所有客户端。
例如:
Client Task TaskClient
========= ====== ===================
id name id name id client task
----- ------ ----- ----- ----- -------- ------
1 c1 1 t1 1 1 1
2 c2 2 t2
3 c3
如上所述,我有3个客户c1,c2和c3。同样地,我有2个任务t1和t2。
现在TaskClient正在保存Task和Client的映射。在示例中,客户端ID 1与任务ID 1相关联
现在我想要一个查询,我将给出taskid,作为回报,我希望所有可用的客户端都与TaskClient表中的给定任务ID无关。
如果我将任务ID设为1,那么我应该得到c2和c3
如果我给任务ID为2,那么我应该得到c1,c2和c3。
注意:Client和Task bean没有对TaskClient bean的任何引用
请帮忙。 提前谢谢。