【发布时间】:2019-04-17 19:25:31
【问题描述】:
上下文:我有两个表 Secret_Agent 和 Secret_Mission。两者之间都具有@ManyToMany 关系,因为可以指定许多秘密特工执行相同的秘密任务,并且可以赋予同一个秘密特工许多秘密任务。
表 SECRET_AGENT
列 SecretAgentId、SecrentAgentName
表 SECRET_MISSION
列 SecretMissionId、SecrentMissionName、SecrentMissionStatus
加入表
SECRET_AGENT_MISSION
列:SecretAgentId、SecretMissionId
Java 代码:
类 Secret_Agent { . . .
@ManyToMany(cascade = CascadeType.ALL) @JoinTable(name = "SECRET_AGENT_MISSION", joinColumns = { @JoinColumn(name = "SecretAgentId") }, inverseJoinColumns = { @JoinColumn(name = "SecretMissionId") } 私人列表任务; . . . }
类 Secret_Mission { . . .
@ManyToMany(mappedBy = "missions") 私有列表代理; . . . }
问题:我正在尝试获取状态 = 激活的所有特工和特工任务。但是下面的查询只检索到具有状态为 Active 的任务的特工。
@Query(FROM FROM Secret_Agent sa "
+ "LEFT JOIN FETCH sa.missions sm"
+ "WHERE sm.status = "ACTIVE" ")
任务状态可以是存档或活动。 我只需要任务状态为 ACTIVE 的所有特工或任务空的特工实体
【问题讨论】:
标签: mysql hibernate jpa spring-data-jpa