我正在尝试学习get和load之间的区别。我的代码示例是这个---
public class StudentTest {
public static void main(String[] args) {
SessionFactory sessionfactory=new Configuration().configure().buildSessionFactory();
Session session=sessionfactory.openSession();
Student student=new Student();
student.setName("Rajat");
student.setDate(new Date());
student.setCompany("Yash");
session.persist(student);
Transaction t1=session.beginTransaction();
session.getTransaction().commit();
student.setName("Prashant");
Student getStudent1=(Student)session.get(Student.class, 1);
System.out.println("-----------get------------------");
System.out.println(getStudent1);
session.close();
sessionfactory.close();
}
如果点击数据库为什么?输出是
Student [id=1, name=Prashant, company=Yash, date=Thu Apr 20 17:22:20 IST 2017]
在数据库中,它将名称保存为Rajat。
答案 0 :(得分:0)
直接从数据库中加载对象,因此在执行get时,您将在日志中看到select sql。
Load为请求的集合提供代理,每当您实际使用请求的集合时,将执行sql将获取该集合