簡體   English   中英

如何查詢具有多對多關系的實體?

[英]How to query for entities with many-to-many relationships?

我有3個有關聯的實體。 以下是我的課程的簡化示例:

@Entity
public class Action {}

@Entity
public class Instance {

    @ManyToMany
    private Set<Action> actions;

    @ManyToMany
    private Set<CadSystem> cadSystems;

}

@Entity
public class CadSystem {}

如何查詢屬於特定ActionCadSystem所有Instance 例如,我想在JpaRepository執行以下JpaRepository

public interface InstanceRepository extends JpaRepository<Instance, Long> {

    List<Instance> findByActionAndCadSystem(Action action, CadSystem cadSystem);

}

但這是不可能的,因為Instance沒有名為actioncadSystem字段。 我認為以下方法會起作用:

public interface InstanceRepository extends JpaRepository<Instance, Long> {

    List<Instance> findByActionsAndCadSystems(Set<Action> actions, Set<CadSystem> cadSystems);

}

但是在這種情況下,我將總是不得不創建一個只有一個元素的新Set

使用查詢。 另外,請注意,由於關聯是多對多的,因此此查詢可能返回幾個操作:

select i from Instance i
join i.actions action
join i.cadSystems cadSystem
where action = :action
and cadSystem = :cadSystem

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM