4.2 Making entities persistent

将一个对象从临时状态转换为持久化状态:
session.save();
session.persist();

Once you’ve created a new entity instance (using the standard new operator) it is in new state. You can make it persistent by associating it to either a org.hibernate.Session or javax.persistence.EntityManager

  1. Emp emp = new Emp();
  2. emp.setEname("wangWu");
  3. emp.setHiredate(new Date());
  4. emp.setComm(10000L);
  5. emp.setSal(10000L);
  6. emp.setJob("MANAGER");
  7. emp.setMgr(null);
  8. //emp.setEmpno(10000L); //在save方法执行之前,为对象设置ID是无效的(该条语句无任何作用)
  9. session.save(emp);
  10. //emp.setEmpno(10000L); //在save方法执行之后,持久化对象的ID是不能被修改的(该条语句会抛出一个异常)

persist方法与save方法的区别:

  • 在persist方法执行之前,若对象已经有id了,则不会执行INSERT方法,相反会抛出一个异常PersistentObjectException