使用 member of 过滤多对多关系
Using member of to filter in many to many relationship
我有这个问题,首先我有这个例子class
@Entity
public class A {
private String name;
@id
private Integer id;
@ManyToMany(cascade = {CascadeType.PERSIST,CascadeType.MERGE}, fetch = FetchType.LAZY)
@JoinTable(name = "formof_undertaking_subproduct",
joinColumns = @JoinColumn(name = "a_id"),
inverseJoinColumns = @JoinColumn(name = "b_id"))
private Set<b> bSet;
我想做这个查询
@Query("select distinct entity from A entity where :bId member of entity.b.id")
List<A> getAbyB(@Param("Bid")Integer Bid);
但是当我执行这个查询时,我得到了这个错误:
参数值元素 [1] 与预期类型不匹配
因为某些原因,它需要一个 B 对象,但我想使用 B.id 整数 ID。
有解决办法吗?
谢谢你的时间,对不起我的英语,这不是我的母语。
最后,我使用简单的连接完成了一个新查询,查询将是:
select distinct entity from A entity join entity.b other where other.id = :id;
我有这个问题,首先我有这个例子class
@Entity
public class A {
private String name;
@id
private Integer id;
@ManyToMany(cascade = {CascadeType.PERSIST,CascadeType.MERGE}, fetch = FetchType.LAZY)
@JoinTable(name = "formof_undertaking_subproduct",
joinColumns = @JoinColumn(name = "a_id"),
inverseJoinColumns = @JoinColumn(name = "b_id"))
private Set<b> bSet;
我想做这个查询
@Query("select distinct entity from A entity where :bId member of entity.b.id")
List<A> getAbyB(@Param("Bid")Integer Bid);
但是当我执行这个查询时,我得到了这个错误:
参数值元素 [1] 与预期类型不匹配
因为某些原因,它需要一个 B 对象,但我想使用 B.id 整数 ID。
有解决办法吗? 谢谢你的时间,对不起我的英语,这不是我的母语。
最后,我使用简单的连接完成了一个新查询,查询将是:
select distinct entity from A entity join entity.b other where other.id = :id;