Hibernate实战_笔记18(基于注解的元数据)(二)

2014-11-24 01:25:18 · 作者: · 浏览: 1
个标识符属性;就像在注解中一样,实体类的所有其他属性也通过一个明显的默认映射自动地被认为是持久化的。
也可以给整个持久化单元设置默认映射,例如Schema名称和默认的级联选项。如果包括 元素,JPA提供程序则完全忽略这个持久化单元中实体类的全部注解,并且仅仅依赖如同在orm.xml文件中定义的映射。
如果不想忽略而是要覆盖注解元数据,就先从org.xml文件中移除全局的 元素。还要从任何应该覆盖(而不是取代)注解的实体映射中移除metadata-complete="true"属性。
Java Persistence中使用XML部署描述符的一个明显的问题是,它们与原生的Hibernate XML映射文件的兼容性。这两种格式根本不兼容,你应该决定使用一种或者另一种。JPA XML描述符的语法比原生的Hibernate XML映射文件更接近于实际的JPA注解。
当决定一种XML元数据格式时,还要考虑供应商扩展。Hibernate XML格式支持所有可能的Hibernate映射,因此如果有些东西无法在JPA/Hibernate注解中被映射,则可以用原生的Hibernate XML文件映射。同样的事情对于JPA XML描述符则不是如此――它们只提供覆盖规范的方便且具体化的元数据。
另一方面,你无法用Hibernate XML映射文件覆盖注解;必须用XML格式定义一个完整的实体类映射。
如果正使用JDK5.0,就考虑JPA/Hibernate注解为首选。如果想把一个特定的类映射具体化,或者利用一个不能作为注解使用的Hibernate扩展,就回到原生的Hibernate XML映射文件。如果不打算使用任何供应商扩展(实际上,这是不可能的),或者如果只想覆盖几个注解,或者如果需要甚至包含部署描述符的完整可移植性,就考虑用JPA XML描述符。
但是如果你习惯使用JDK1.4(或者甚至1.3),却又仍然想要享受行内元数据的更好重构能力和减少代码行的好处时,该怎么办?
下面的内容是介绍XDoclet,感觉知识点好老,都是JDK版本1.4、1.3。。。多学一点,总是有好处的,哈哈。