4.5 session的saveOrUpdate方法

session.saveOrUpdate()方法:

  • 如果对象是一个游离对象,那么将会执行update(发送update语句)方法,如果是一个临时对象,将会执行save(发送insert语句)方法
  • 如何判断一个对象为临时对象?
    1. java对象的OID为NULL
    2. 映射文件中的id列的unsaved-value元素指定的值与对象的OID一致,那么也认为该对象为临时对象
  • 若OID不为空,但是数据表中还没有和其对应的记录,会抛出异常
  • 了解:OID值为id的unsaved-value对象,也被认为是一个游离对象