小编Sch*_*tey的帖子

在Spring Projections中获取延迟属性

我目前正在尝试评估使用Spring Data JPA的可能性.

试图使用Projections,我目前只是试图获取特定属性Eager.

我有一个简单的实体,它懒惰引用另一个带有外键的实体.我现在想为前一个实体定义不同的预测."原始"属性很好地投射到投影界面中,但是尝试投影另一个实体/投影会导致它仍然是延迟加载的.

我现在想告诉Spring/JPA急切地在预测中加载实体/投影.一种可能的方法是使用EntityGraphs(它们运行良好),但我必须使用不同的图形为每个方法创建存储库.问题是其他方式有哪些?

例:

实体买方:

@Entity
public class Buyer {
    private Integer id;
    private String someProperty;
    private User user;

    ...

    @OneToOne(
        fetch = FetchType.LAZY)
    @JoinColumn(
        name = "CAB_USR_ID",
        referencedColumnName = "ID",
        updatable = false,
        nullable = true,
        foreignKey = @ForeignKey(name = "FK_CAB_USR"))
    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }
}
Run Code Online (Sandbox Code Playgroud)

实体用户:

@Entity
public class User {

    private Integer id;
    private String name;

    ...

}
Run Code Online (Sandbox Code Playgroud)

投影买方

public interface BuyerCProjection …
Run Code Online (Sandbox Code Playgroud)

java spring jpa spring-data spring-data-jpa

9
推荐指数
1
解决办法
780
查看次数

标签 统计

java ×1

jpa ×1

spring ×1

spring-data ×1

spring-data-jpa ×1