我正在尝试为两个表学生和证书实现OnetoMany关系。我有两个班级,学生和证书,从学生班到证书班都有OnetoMany关系。
学生班:
@Entity
@Table(name = "student")
public class Student implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id")
private Integer id;
@OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="student")
private List<Certificats> listCertificats;
// Getters and Setters
证书类:
@Entity
@Table(name = "certificates")
public class Certificates implements Serializable{
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id")
private Integer id;
@ManyToOne
@JoinColumn(name="student_id")
private Student student;
// Getters and Setters
我的DAO类有一个从数据库中获取数据的方法:
@SuppressWarnings("unchecked")
public List<Students> listStudents() {
List<Students> studentList;
studentList= sessionFactory.getCurrentSession().createQuery("from Student").list();
return studentList;
}
现在,当我运行此方法时,Student类中作为List的listCertificats的值始终为null。但是,我在Student类中获得id字段的值。我在这做错了什么?我检查了一些关于Hibernate OnetoMany关系的教程,他们描述了我实现的相同方式。任何人都会非常感激。
答案 0 :(得分:0)
FetchType.lazy意味着在访问子实体的特定属性之前,您不会看到子实体的数据。
请说明您何时看到空?即使您访问它们,您是否看到了null?