Jpa / Hibernate 实体关联对象里的字段能否 exclude 部分字段

2019-06-27 18:12:32 +08:00
 reid2017

public class Student {
    private Integer id;
    private String name;
    private Integer age;
    private Integer gender;
    private LocalDate birthday;
}

public class Course {
    private Integer id;
    private String name;
    private String xxx;
    private String aaa;

    private Integer studentId;
    @JoinColumn(name = "studentId", insertable = false, updatable = false)
    @OneToOne(fetch = FetchType.EAGER)
    private Student student;
}

hibernate 在查询的时候,有没有办法可以 exclude 掉关联实体的部分字段?

如上,在查 Course 时,关联的 Student 对象的全部字段会被查询出来,有没有办法可以过滤掉部分字段,只查询部分需要的字段?

2576 次点击
所在节点    Java
4 条回复
wc951
2019-06-27 18:22:51 +08:00
延迟加载
oneisall8955
2019-06-27 19:20:10 +08:00
fetchtype 使用 lazy
ilumer
2019-06-27 23:18:17 +08:00
entityGraph ,querydsl ,jpql 不过这些都是类似 DTO 的方式查询出来。延迟加载 整个实体只会被查询出 id,如果调用其他的属性会出现 N+1 的问题
adzchao
2019-06-28 10:07:10 +08:00
lazy 是唯一解决方式

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/578081

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX