hibernate中Session的saveOrUpdate()方法详解

时间:2024-10-12 04:56:55

1、Session的saveOrUpdate()方法同时包含了save()与update()方法的功能。

hibernate中Session的saveOrUpdate()方法详解

2、当数据库中没有此对象时将执行insert方法: @Test public void testSaveOrUpdate() { News news = new News("tomcat","FF",new Date()); session.saveOrUpdate(news); }

hibernate中Session的saveOrUpdate()方法详解

3、当对象设置了id时,程序将执行update语句:@Test public void testSaveOrUpdate() { News news = new News("tomcat","FF",new Date()); news.setId(1); session.saveOrUpdate(news); }

hibernate中Session的saveOrUpdate()方法详解

4、如果OID不为null,但是数据库表中还没有和其对应的记录,会抛出异常。

hibernate中Session的saveOrUpdate()方法详解

5、如果OID值等于id的unsaved-箪滹埘麽value属性值的对象,也被认为是一个游离对象。<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name="com.gwolf.domain.News" table="NEWS"> <id name="id" type="java.lang.Integer" unsaved-value="11"> <column name="ID" /> <generator class="native" /> </id> <property name="title" type="java.lang.String"> <column name="TITLE" /> </property> <property name="author" type="java.lang.String"> <column name="AUTHOR" /> </property> <property name="date" type="java.util.Date"> <column name="DATE" /> </property> </class></hibernate-mapping>

hibernate中Session的saveOrUpdate()方法详解

6、现在我们再次运行单元测试,查看程序的结果。此时尽管ID不在数据库中,程序将会执行insert语句。

hibernate中Session的saveOrUpdate()方法详解
© 手抄报圈