小编Mar*_*tte的帖子

如何使用谓词过滤子实体集合?

我有一个实体服务,我需要根据id的列表过滤子实体的集合.我的服务有一个公共方法,它接收父实体的id和他的一些子实体的id列表.

默认情况下,我知道JPA将获取所有相关实体,这是他的实际行为.但我们需要研究服务的性能.因此,我没有获得所有相关实体并使用多个循环过滤它们(过滤id和其他属性,如date属性),我想只得到我的请求所关注的实体.

我的父实体

@Entity
@Table(name = "MyParent")
public class MyParentEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, 
        generator = "SEQ_MyParent")
    @SequenceGenerator(allocationSize = 1, name = "SEQ_MyParent", 
        sequenceName = "SEQ_MyParent")
    @Column(name = "ID_PARENT")
    private Long id;

    @OneToMany(mappedBy = "myParent", cascade = CascadeType.ALL, 
        fetch = FetchType.EAGER, orphanRemoval = true)
    private final List<MyChildEntity> myChild = new ArrayList<MyChildEntity>();

}
Run Code Online (Sandbox Code Playgroud)

我的孩子实体

@Entity
@Table(name = "MyChild")
public class MyChildEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.SEQUENCE, 
        generator = "SEQ_MyChild")
    @SequenceGenerator(allocationSize = 1, name = "SEQ_MyChild", 
        sequenceName = "SEQ_MyChild")
    @Column(name = …
Run Code Online (Sandbox Code Playgroud)

jpa predicate criteria-api spring-data

6
推荐指数
1
解决办法
9492
查看次数

标签 统计

criteria-api ×1

jpa ×1

predicate ×1

spring-data ×1