@Entity @Table(name = "Student") public class StudentInformation { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int rollno; private String name; // Mapping to the other table @OneToMany(mappedBy ="stud" ,cascade = CascadeType.ALL,fetch=FetchType.LAZY) private Set<Address> addressSet=new HashSet<>();; public StudentInformation() { } public StudentInformation(int rollno, String name) { this.rollno = rollno; this.name = name; } public int getRollno() { return rollno; } public void setRollno(int rollno) { this.rollno = rollno; } |
@Entity @Table(name = "Address") public class Address { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String cityname; @ManyToOne(cascade=CascadeType.ALL) @JoinColumn(name = "Student_id") StudentInformation stud; Address() {} public Address(int id, String cityname, StudentInformation ob1) { this.id = id; this.cityname = cityname; this.stud = ob1; } public int getId() { return id; } public void setId(int id) { this.id = id; } |
从code可以看出,
打印第一行,没有用到address, 则hibernate没有执行查询;
打印第二行,用到address,则执行了对address的查询。
通过这个小测试,可以看出来hibernate实现的延迟加载功能。文章来源:https://www.toymoban.com/news/detail-485721.html
hibernate对于配置延迟加载的对象进行了监听, 当管理的对象被调用时,立即进行数据加载。文章来源地址https://www.toymoban.com/news/detail-485721.html
到了这里,关于hibernate 懒加载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!