我有一个多对多条件的问题。我有这样的数据:
class Todo {
...
@ManyToMany
private List<Attachment> attachments;
}
我正在尝试从一些附件ID中查找todo,如下所示:
interface TodoRepository extends JpaRepository<Todo, String> {
@Query("select t from Todo t left join fetch t.attachments attachment where attachment.id in (:attachmentIds)")
List<Todo> findAttachedTodos(List<String> attachmentIds);
}
我能够检索到相应的TODO。如果一个todo有多个附件,我无法检索结果todo中不在AttachmentId中的附件。如果我删除条件,我可以检索所有附件。
如何检索所有附件?
谢谢。
2条答案
按热度按时间cotxawn71#
必须使用exists子查询:
kkbh8khc2#
如果您有一个联接表,那么可以使用一个联接表。如果我敢打赌这是一个可能的解决办法。应该用数据库列、表和其他变量替换这些名称。
你的依恋实体应该是这样的:
进一步阅读多对多连接简介。