hibernate 3中的update方法有个重载
update(Object obje);
update(String s,Object obj);
我在调用update的时候发现了这个重载。
谁能解释下update(String s,Object obj);
这个方法的2个参数什么意思?谢谢!
update(Object obje);
update(String s,Object obj);
我在调用update的时候发现了这个重载。
谁能解释下update(String s,Object obj);
这个方法的2个参数什么意思?谢谢!
但是有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的版本。
我不清楚hibernate最新版本对这种映射的支持,但至少在3.0版本时,这些特性还处于实验阶段,不建议使用。说了这么多,其实一句话。无视它们就好了。