Hibernate 3 提供了一种与实体类型无关的映射方式:动态模型(Dynamic Model),即通过通用数据容器(如Map)对库表进行表达。示例配置文件片段:
<hibernate-mapping>
<class entity-name="DynamicUserMap" table = "t_person">
<id name="id" column="id">
<generator class="native"/>
</id>
</class>
</hibernate-mapping>
在此引入一个新的属性:entity-name,用以指定实体名。
示例代码片段:
session=sessionFactory.openSession().getSession(EntityModel.Map);//以EntityModel.Map模式获得Session实例
Map personMap = new HashMap();
personMap.put("name","Ken");
Transaction tx = session.beginTransaction();
session.save("DynamicUserMap",personMap);//指明操作的实体名:DynamicUserMap
tx.commit();
session.close();
Hibernate将根据实体名对应的映射配置完成动态模型的持久化操作。