Hibernate 冬眠一夫一妻关系
我正在尝试为两个表和学生证书实现一对一关系。我有两个班,一个是学生班,另一个是证书班,从学生班到证书班都有一个共同的关系 学生班级:Hibernate 冬眠一夫一妻关系,hibernate,jpa,Hibernate,Jpa,我正在尝试为两个表和学生证书实现一对一关系。我有两个班,一个是学生班,另一个是证书班,从学生班到证书班都有一个共同的关系 学生班级: @Entity @Table(name = "student") public class Student implements Serializable{ @Id @GeneratedValue(strategy=GenerationType.AUTO) @Column(name = "id") private Intege
@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
我的DAO类有一个从数据库获取数据的方法:
@SuppressWarnings("unchecked")
public List<Students> listStudents() {
List<Students> studentList;
studentList= sessionFactory.getCurrentSession().createQuery("from Student").list();
return studentList;
}
@SuppressWarnings(“未选中”)
公开名单学生(){
学生名单;
studentList=sessionFactory.getCurrentSession().createQuery(“来自学生”).list();
返回学生名单;
}
现在,当我运行这个方法时,Student类中listCertificats的值,即一个列表,总是空的。但是,我在Student类中获取id字段的值。我做错了什么?我查看了一些关于Hibernate-OnetoMany关系的教程,它们描述了与我实现相同的方法。任何人都将不胜感激 FetchType.lazy意味着您在访问子实体的特定属性之前不会看到它们的数据
请指定何时看到空值?即使在访问它们时,您是否也看到空值?我假设您创建了测试数据。您是否已确保在保存之前在两个实体之间建立了关系。(student.getListCertificates().add(certificate);certificate.setStudent(student))否则,根据内部会话状态,hibernate可能会出现意外行为。我是一个相对较新的人。你能详细解释一下吗?你需要在数据库中插入数据来读取一些东西,我指的是代码。使用双向映射。如果使用不当,可能会导致故障。我的数据库中有数据。我只想读取数据,然后向我们展示数据格式;如何访问数据或其他有用的内容。我没有第一次使用cascade=CascadeType.ALL,fetch=FetchType.LAZY。我添加了这些以不同的方式尝试,每次我看到null。要指定,我在尝试访问特定字段时看到null。我知道我的代码或设置有问题。我只是想知道它在哪里。我在数据库中的数据具有简单的一对多关系。了解是否需要不同的方法从这些表中获取数据也会很有帮助。我想如果我使用onetomany关系,它将根据表之间的关系自动从两个表中获取数据。
@SuppressWarnings("unchecked")
public List<Students> listStudents() {
List<Students> studentList;
studentList= sessionFactory.getCurrentSession().createQuery("from Student").list();
return studentList;
}