hibernate中自定义insert&update&delete

 

http://gaorichie.blog.163.com/blog/static/34465400200823191058986/

Hibernate 在3.1版本中推出了新的功能,<sql-insert> ,<sql-delete>和<sql-update>.

 

<hibernate-mapping>    
   <class name="onlyfun.caterpillar.User" table="user">        
 <id name="id" column="id">            
   <generator class="native"/>        
 </id>        
 <property name="name" column="name"/>        
 <property name="age" column="age"/>        
 <sql-insert>           
     INSERT INTO user (name, age)
     VALUES (?, ?)       
 </sql-insert>       
 <sql-update>           
     UPDATE user
     SET name=?, age=?, WHERE id=?       
 </sql-update>       
 <sql-delete>           
     DELETE FROM user WHERE id=?       
 </sql-delete>   
   </class>
</hibernate-mapping>

 

对应的顺序是映射文件中属性出现的顺序<---very important,不注意属性顺序的话就会出错
执行时,同样使用session.save(user);
而执行的结果是INSERT INTO user (name, age) VALUES (?, ?)    

如果有标识列,并且为key的话,则插入语句,该列放在最后一个
比如,id为标识,则insert into user (***,***,***,id) values(?,?,?,?)