【发布时间】:2016-11-07 01:52:41
【问题描述】:
我有一个名为 Student 的实体,其中与学生相关的字段很少,并且有一个具有 oneToMany 关系的主题列表。在这里,我需要获取所有字段,包括“图像”以外的主题列表,因为它使用更多内存,需要很长时间才能检索所有行。有人可以说如何创建投影和标准以仅在没有图像字段的情况下检索此学生对象吗?是否有像“AliasToBeanNestedResultTransformer”这样的自定义结果转换器?因为这不适用于我将主题列表作为 OneToMany 关系的情况。
@Entity
@Table(name="STUDENT")
public class Student {
@id
private long studentId;
private String name;
private String dob;
private int age;
@Lob
private byte[] image;
@Lob
private byte[] imageTnail;
@OneToMany(mappedBy="subject", cascade = CascadeType.ALL, orphanRemoval=true)
private List<Subject> subjects;
//setter & getter...
}
@Entity
@Table(name="SUBJECT")
public class Subject {
@id
private long subjectId;
private String subjectName;
@ManyToOne
@JoinColumn(name="studentId")
private Student student;
}
编辑
List<Student> results = getSession().createCriteria(Student.class)
.setProjection( Projections.projectionList()
.add( Property.forName("studentId"))
.add( Property.forName("name") )
.add( Property.forName("dob"))
.add( Property.forName("age"))
).setResultTransformer(Transformers.aliasToBean(Student.class)).list();
System.out.println("StudentDaoImpl.getStudents()"+results.get(0).getName());
【问题讨论】:
标签: hibernate dao projection hibernate-criteria