小编dd1*_*714的帖子

如何仅加载@NamedEntityGraph中子图中的指定属性

我想从数据库加载 UserReference 对象,但从 verifier 属性我只想加载 id、firstName 和 lastName,这样 userReference 看起来像这样:

{
  "id": 1,
  "company": "company1",
  "companyContactName": "some name",
  "companyPosition": "programmer",
  "referenceDate": "02/04/2005",
  "verifier": {
        "id":1
        "firstName": "Jane",
        "lastName": "Smith"
        "email":null,
        "username":null,
        "office:null,
        "department":null
  }
}
Run Code Online (Sandbox Code Playgroud)

我为 UserReference 类使用了实体图,但我使用的实体图加载了用户拥有的所有信息,包括电子邮件、用户名、办公室和部门。有没有什么方法可以为子图指定 EntityGraphType.FETCH 之类的内容,以便它只加载验证者的 id、firstName 和 lastName?

这是我的 UserReferenceRepository:

public interface UserReferenceRepository extends JpaRepository<UserReference, Long>{

    @EntityGraph(value = "userReferenceGraph" ,  type = EntityGraphType.FETCH )
    UserReference findOne(Long id);
}
Run Code Online (Sandbox Code Playgroud)

UserReference 类:

@Getter
@Setter
@EqualsAndHashCode (exclude = {"id", "verifier"})
@ToString(exclude = {"id"})
@Entity
@NamedEntityGraphs({
    @NamedEntityGraph(
        name = …
Run Code Online (Sandbox Code Playgroud)

java hibernate lazy-loading spring-data-jpa entitygraph

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