@OneToMany等关联注释如何指定查询出的字段?

@OneToMany、@OneToOne、@ManyToMany等关联注释如何指定查询出的字段?

例如以下代码:

@Entity
@Table(name = "db_user")
public class User{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String name;
    
    @JoinColumn(name="userId")
    @OneToMany()
    private List<Child> childs;
    
    //get set
}

@Entity
@Table(name = "db_Child")
public class Child{
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    private String name;
    
    private Integer age;
    
    @Column(name="user_id")
    private Integer userId;
    
    //get set
}

查询User时会关联查询childs,这时childs的name和age都是有值的,如果我只想查询name时,能有什么办法吗?

阅读 3.4k
1 个回答

默认是不支持的,但是可以加上bytecode enhancement,设置好之后 private byte[] 类型可以lazy load。如果你的性能连多取几个字段都要考虑,那就应该自己写sql取数据了,不使用or mapping框架。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题