`
micc010
  • 浏览: 69231 次
  • 性别: Icon_minigender_1
  • 来自: 广西
社区版块
存档分类
最新评论

hibernate中的update等方法为何除了object外还有一个entityName参数

    博客分类:
  • java
阅读更多
hibernate 3中的update方法有个重载
update(Object obje);
update(String s,Object obj);


正常情况下,update方法只用一个参数的就可以了。
但是有2个参数的版本也是有意义的。它的完整声明是这样的。
public void update(String entityName, Object object) throws HibernateException;
hibernate在探索不使用pojo类或javabean进行O/R Mapping,可选的方式有 动态模型(Dynamic models),和 XML映射。两种方式都可以不写持久化类的。前者使用Map套Map来表示数据,后者使用解析过的XML树。
<hibernate-mapping>的 <class>节点有个可选属性是entity-name,默认是类名。普通的用pojo类映射时,它是没什么用的。但是在上述两种情况下,就要使用它了(配置文件的其他区别不赘述)。在你持久化操作这样的映射时,所使用的Session的EntityMode不能再是默认的POJO,而是MAP或XML。调用Session的持久化方法也必须指定entityName,因为你要持久化的对象已经不能以自身的信息(object.getClass())来表示映射的对象。你可以发现不只是update,其他一系列的方法,像get load save saveOrUpdate merge persist等等都提供了带entityName的版本。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics