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