Hibernate OnetoMany关系

时间:2015-05-10 22:10:30

标签: hibernate jpa

我正在尝试为两个表学生和证书实现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关系的教程,他们描述了我实现的相同方式。任何人都会非常感激。

1 个答案:

答案 0 :(得分:0)

FetchType.lazy意味着在访问子实体的特定属性之前,您不会看到子实体的数据。

请说明您何时看到空?即使您访问它们,您是否看到了null?