@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时,能有什么办法吗?
默认是不支持的,但是可以加上bytecode enhancement,设置好之后 private byte[] 类型可以lazy load。如果你的性能连多取几个字段都要考虑,那就应该自己写sql取数据了,不使用or mapping框架。