小编Jam*_*ron的帖子

替换spring-data页面的全部内容,同时保持分页信息

使用spring-data-jpa并从表中获取数据,其中有大约十二列用于查询以查找特定行,然后是一个clob类型的有效负载列,其中包含编组到java对象中的实际数据被退回.

实体对象非常粗略

@Entity
@Table(name = "Person")

public class Person {
    @Column(name="PERSON_ID", length=45) @Id private String personId;
    @Column(name="NAME", length=45) private String name;
    @Column(name="ADDRESS", length=45) private String address;
    @Column(name="PAYLOAD") @Lob private String payload;

    //Bunch of other stuff
} 
Run Code Online (Sandbox Code Playgroud)

(这种方法是否合理是一个不同讨论的主题)

clob列会导致性能受到大量查询的影响......

为了改善一些事情,我创建了一个单独的实体对象...没有负载......

@Entity
@Table(name = "Person")

public class NotQuiteAWholePerson {
    @Column(name="PERSON_ID", length=45) @Id private String personId;
    @Column(name="NAME", length=45) private String name;
    @Column(name="ADDRESS", length=45) private String address;

    //Bunch of other stuff
} 
Run Code Online (Sandbox Code Playgroud)

这让我得到一个NotQuiteAPerson页面......然后我通过personIds查询完整人物对象的页面.

希望是在原始查询中不使用有效负载,这可能会在支持表的一小部分上过滤数据,当我正在检索要查看的对象的当前页面时,我只关心自己的有效负载...一个小得多的块.

所以我想要将原始返回的NotQuiteAWholePerson页面的内容映射到我的人员列表,同时保持所有的分页信息不变,但是map方法只需要一个将迭代NotQuiteAWholePerson对象的Converter ......这不太适合我想做的事情.

有没有明智的方法来实现这一目标?


关于为什么现有的map()不够用@itsallas的补充说明..

PageImpl :: map有

@Override
public <S> …
Run Code Online (Sandbox Code Playgroud)

spring spring-data spring-data-jpa spring-boot

5
推荐指数
1
解决办法
226
查看次数