前章节已经初步了解Hibernate域模型基础知识。今天小博老师继续带领大家学习域模型命名策略。
将对象模型中的名称映射到相应的数据库名称是对象模型映射关系数据库的一部分。 Hibernate看这个2阶段的过程:
l 第一阶段是从域模型映射确定一个合适的逻辑名称。 逻辑名称可以由用户明确指定(例如使用@Column或@Table),也可以由Hibernate通过ImplicitNamingStrategy隐式定义。
l 第二个是将此逻辑名称解析为由PhysicalNamingStrategy定义的物理名称。
当一个实体没有显式地命名映射到的数据库表时,我们需要隐式地确定该表的名称。 或者当一个特定的属性没有显式地命名映射到数据库的列时,我们需隐式地确定该列的名称。
org.hibernate.boot.model.naming.ImplicitNamingStrategy的作用是在映射未提供明确名称时确定逻辑名称,下图示例说明:
Hibernate即时定义了多个ImplicitNamingStrategy实现。 应用程序也可以自定义实现。
有多种方法可以指定要使用的ImplicitNamingStrategy。 首先,应用程序可以使用hibernate.implicit_naming_strategy配置设置来指定实现:
ü 预先定义的“简短名称”
ü 引用实现org.hibernate.boot.model.naming.ImplicitNamingStrategy的子类
其次,应用程序和集成可以利用org.hibernate.boot.MetadataBuilder#applyImplicitNamingStrategy来指定要使用的ImplicitNamingStrategy。