V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
reid2017
V2EX  ›  Java

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

  •  
  •   reid2017 · 2019-06-27 18:12:32 +08:00 · 2559 次点击
    这是一个创建于 1976 天前的主题,其中的信息可能已经有所发展或是发生改变。
    
    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 对象的全部字段会被查询出来,有没有办法可以过滤掉部分字段,只查询部分需要的字段?

    4 条回复    2019-06-28 10:07:10 +08:00
    wc951
        1
    wc951  
       2019-06-27 18:22:51 +08:00 via Android
    延迟加载
    oneisall8955
        2
    oneisall8955  
       2019-06-27 19:20:10 +08:00 via Android
    fetchtype 使用 lazy
    ilumer
        3
    ilumer  
       2019-06-27 23:18:17 +08:00
    entityGraph ,querydsl ,jpql 不过这些都是类似 DTO 的方式查询出来。延迟加载 整个实体只会被查询出 id,如果调用其他的属性会出现 N+1 的问题
    adzchao
        4
    adzchao  
       2019-06-28 10:07:10 +08:00
    lazy 是唯一解决方式
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2665 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 06:00 · PVG 14:00 · LAX 22:00 · JFK 01:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.