java 有没有一种方法可以使用一组ID来过滤JPA?

0ve6wy6x  于 2023-05-27  发布在  Java
关注(0)|答案(1)|浏览(125)
public class ProcessEntity implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Long id;
    @NotNull
    private String processDefinitionName;
    @Column(name = "groups_ids")
    @ElementCollection
    private Set<Long> groupIdsProcess = new HashSet<>();
}

public class ProcessInstance implements Serializable {
    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE)
    private Long id;
    @ManyToOne
    private ProcessEntity processEntity;
}

我想使用JPA过滤ProcessInstance,方法如下:

List<ProcessInstance> getAllByProcessEntityGroupIdsProcessContains(Set<Long> setOfIDs)

这将返回ProcessInstances的列表,其processEntity.groupIdsProcess包含传递的参数Set<Long> setOfIDs中包含的任何ID
这可能吗?
我尝试写一个本地查询没有成功,帮助将不胜感激

m1m5dgzv

m1m5dgzv1#

您可以编写一个JPA find方法,例如:

findAllByProcessEntity_GroupIdsProcessIsIn(Set<Long> setOfIDs)

我不确定groupIdsProcess部分,它用@ElementCollection注解,但缺少@CollectionTable(...)注解,如果在ProcessInstance存储库中使用findAll(),它是否正确Map并返回每个值?

相关问题