使用“in”运算符的Spring JPA查询问题
在Spring Intreface中,我有以下代码:使用“in”运算符的Spring JPA查询问题,spring,spring-boot,spring-data-jpa,Spring,Spring Boot,Spring Data Jpa,在Spring Intreface中,我有以下代码: @Query("select gl from GroupEntity gl where ?1 in gl.contacts ") List<GroupEntity> findGroupsByContact(ContactEntity contactEntity); 如果关系建立正确,则可以从联系人存储库查询组 Group.java 如果关系建立正确,则可以从联系人存储库查询组 Group.java 当实体属性
@Query("select gl from GroupEntity gl where ?1 in gl.contacts ")
List<GroupEntity> findGroupsByContact(ContactEntity contactEntity);
如果关系建立正确,则可以从联系人存储库查询组 Group.java
如果关系建立正确,则可以从联系人存储库查询组 Group.java 当实体属性是正确的运算符时,不能使用in JPQL运算符 您应该使用的成员。 为查询提供值以检查其是否属于实体中的某个集合时,应使用的成员。 在向查询提供值列表以检查实体中的属性是否属于此列表时,应使用 示例:
@Entity
public class EntityA {
@Id
private String id;
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<EntityB> entities;
}
当实体属性是正确的运算符时,不能使用in JPQL运算符
您应该使用的成员。
为查询提供值以检查其是否属于实体中的某个集合时,应使用的成员。
在向查询提供值列表以检查实体中的属性是否属于此列表时,应使用
示例:
@Entity
public class EntityA {
@Id
private String id;
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<EntityB> entities;
}
请显示实体和存储库为什么在存储库方法为ez且可用时创建查询?请显示实体和存储库为什么在存储库方法为ez且可用时创建查询?OP希望是单个联系人实体在联系人组的列表中。你的答案与OP想要的不相关。答案不必直截了当。这是关于分享正确的方法,以及在生产中实现JPA的项目中有效的方法。首先,你的解决方案是错误的,你测试过吗?第二个OP不想找到ID列表,OP想要拥有特定contactEntity的组。请再读一遍这篇文章。这是我回答的第二部分。你为什么认为那是错误的?如果定义了多个关系,那么查询组中的混淆是什么?无论如何,为了清楚起见,我正在编辑并删除我的第一部分。OP想要的是一个联系人实体在联系人组的列表中。你的答案与OP想要的不相关。答案不必直截了当。这是关于分享正确的方法,以及在生产中实现JPA的项目中有效的方法。首先,你的解决方案是错误的,你测试过吗?第二个OP不想找到ID列表,OP想要拥有特定contactEntity的组。请再读一遍这篇文章。这是我回答的第二部分。你为什么认为那是错误的?如果定义了多个关系,那么查询组中的混淆是什么?无论如何,为了清晰起见,我正在编辑并删除我的第一部分。
@Entity
@Table(name = "contact")
public class ContactEntity {
...
}
@OneToMany(fetch=FetchType.EAGER, cascade = CascadeType.ALL, mappedBy = "group", orphanRemoval = true)
List<Contact> contacts = new ArrayList<Contact>();
@ManyToOne
Group group;
@Entity
public class EntityA {
@Id
private String id;
@ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private List<EntityB> entities;
}
SELECT a FROM EntityA a WHERE a.id IN :ids
SELECT a FROM EntityA a WHERE :b MEMBER OF a.entities