知识卡片
注解与外部映射文件的取舍
内容
把映射信息直接写成注解、嵌入到数据类源码里,换来的是”自文档化”——读代码时映射规则就 在眼前,不会像外部XML文件那样容易与代码本身脱节;但代价是把持久化模型和某一套具体的 数据库结构紧密耦合在了一起。如果同一个对象模型需要同时支撑多套不同的数据库结构,外部 映射文件反而是更好的选择,因为它可以不改一行Java代码,只换一份映射文件就切换库结构。 发散:这本质上是”配置内联 vs 配置外置”这一更通用取舍的一个实例——内联(注解、代码里 的常量)读起来直观、不容易和使用点脱节,外置(配置文件、映射表)则换来了同一套代码服 务多种场景的灵活性。选哪种不取决于技术本身的优劣,而取决于这份配置未来是否需要在不改 代码的前提下被替换。
参考来源
《精通Hibernate》第7章《映射标注》