Hibernate也支持动态模型 (在运行期使用Map
的Map
)和象DOM4J的树模型那 样的实体表示。使用这种方法,你不用写持久化类,只写映射文件就行了。
在映射文件中用entity-name
看一个例子
xml 代码
- <hibernate-mapping>
- <!-- 这里class里面用的是entity-name,没有创建持久化类,也就是实体类 -->
- <class entity-name="org.tie.User" table="user" catalog="tie">
- <id name="id" type="long">
- <column name="id" />
- <generator class="identity" />
- </id>
- <property name="name" type="string">
- <column name="name" length="45" not-null="true" />
- </property>
- <property name="email" type="string">
- <column name="email" length="45" />
- </property>
- <property name="addr" type="string">
- <column name="addr" length="45" />
- </property>
- </class>
- </hibernate-mapping>
测试的例子
java 代码
- public void testCreate(){
- Map user = new HashMap();
- user.put("name", "zhongguoren");
- user.put("email","zhongguoren@163.com");
- user.put("addr","zhongguobeijing");
- Session session = factory.openSession();
- Transaction tr = session.beginTransaction();
- //这里的save比较特别点
- session.save("org.tie.User", user);
- tr.commit();
- session.close();
- }
- public void testRetrieve(){
- Session session = factory.openSession();
- //查找通过这样的查找
- Map user = (Map)session.load("org.tie.User", new Long(4));
- System.out.println(user.get("email"));
- session.close();
- }