gpt4 book ai didi

java - 如何查询具有多对多关系的实体?

转载 作者:太空宇宙 更新时间:2023-11-04 13:54:36 24 4
gpt4 key购买 nike

我有 3 个存在关系的实体。以下是我的类(class)的简化示例:

@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 中执行以下操作:

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

关于java - 如何查询具有多对多关系的实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29965700/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com