假设我们有实体A,它包含类型为B的实体列表(具有延迟初始化)。 实体B有一个BLOB字段和一些其他不包含太多数据的字段。
我如何使用hibernate条件查询获取实体A的字段和每个带有B列表的A实体,但每个B实体都没有BLOB字段?
另外,我不想提取As并迭代它们以获得Bs。 (我现在,如何使用'Projections'来提取必需字段的Bs。)
以下是一些代码示例:
A-实体:
@Entity
@Table(name = "A")
public class A implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@OneToMany(mappedBy = "order", fetch = FetchType.LAZY)
@Cascade(CascadeType.ALL)
private List<B> list = new LinkedList<>();
}
B-实体:
@Entity
@Table(name = "B")
public class B implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id")
private Long id;
@Column(name = "data", nullable = false)
@Lob
private byte[] data;
@ManyToOne(targetEntity = A.class, fetch = FetchType.EAGER)
@JoinColumn(name = "A_id", nullable = false)
private A a;
}