hibernate之实体表示法
hibernate中有3种内建的实体模式:
POJO 基于POJO,持久化类的一种领域模型实现。这是目前为止你所见到的,是默认的实体模式。
MAP 不需要Java类,用HashMap在Java应用程序中表示实体。这个模式允许完全动态应用程序的快速原型。
DOM4J 不需要Java类,实体被表示为xml元素,基于dom4j API。这种模式对于导出或者导入数据,或者通过XSLT处理来渲染和转 换数据时特别有用。
DOM4J模式的实例
把node属性添加到hibernate映射元数据来改变这个默认的xml表示法。
每一个node属性都定义了xml表示法:
. <class>映射中的node="xxx"属性,给该实体定义了xml元素的名称。如:<xxx></xxx>
. 任何属性映射中的node="yyy"属性,指定属性内容应该表示为给定名称的xml元素文本。如:<xxx><yyy>kkkk</yyy></xxx>
. 任何属性映射中的node="@zzz"属性,指定属性内容应该表示为给定名称的xml属性值。如:<xxx zzz="..."></xxx>
. 任何属性映射中的node="lll/@ppp"属性,指定属性内容应该在给定名称的一个子元素中表示为给定名称的xml属性值。
<xxx><lll ppp="..."></lll></xxx>
pom.xml:
resources/hibernate.cfg.xml:
hibernateTest/Student.java:
hibernateTest/Student.hbm.xml:
util/HibernateUtil.java:
util/StudentManager.java:
输出结果:
注意:xxx.hbm.xml中加了note属性的xml表示法,并不影响你使用普通的POJO表示法。如上例。
DOM4J实体表示法的一对多实例:
生成的xml数据格式为:
embed-xml选项被用于触发被关联实体数据的嵌入或者引用。小心这个embed-xml选项--你可能很容易创建导致无限循环的循环引用。