Hibernate实战_笔记17(持久化实体类)(三)

2014-11-24 01:25:14 · 作者: · 浏览: 2
回滚,你要自己处理这个异常。如果抛出已检查应用异常,Hibernate就会把这个异常包在一个RuntimeException里面。

XML中的元数据

任何ORM解决方案都应该提供一个人类可读的、易于手工编辑的映射格式,而不只是一个GUI映射工具。目前最受欢迎的对象/关系元数据格式是XML。以XML编写或者包含XML的映射文档都是轻量级的、人类可读的、易于通过版本控制系统和文本编辑器操作的,并且可以在部署被定制。
但是基于XML的元数据真的是最好的方法吗?
在我们看来,有三大原因:
1)基于元数据的解决方案经常被不恰当地应用。元数据重来就没有简单的 Java代码那么灵活或者易于维护。
2)许多现有的元数据格式不是被设计成易读和易于用手工编辑的。
3)好的XML编辑器,特别是在IDE中,不像好的Java编码环境一样普遍。
在ORM中无法避免对元数据的需求。然而,Hibernate在设计时充分认识到典型的元数据问题。Hibernate的XML元数据格式非常易读,并定义了有用的默认值。如果没有属性值,就在被映射的类上用反射来确定默认值。Hibernate还包含提供文档化的完整DTD。最终,IDE对XML的支持近来已经得到了改善,现代的IDE提供动态的XML验证,甚至提供一项自动完成的特性。
Category类的XML映射文件:

  
	
    
     
      
     
     
   

  
在这个例子中有意省略了集合和关联映射。关联尤其是集合映射更加复杂,因此后续将再回到这个话题。