hibernate 创建和使用自定义的隐式命名策略
示例
创建自定义项ImplicitNamingStrategy使您可以调整Hibernate如何将名称分配给非明确命名的Entity属性,包括外键,唯一键,标识符列,基本列等。
例如,默认情况下,Hibernate将生成外键,这些外键经过哈希处理,看起来类似于:
FKe6hidh4u0qh8y1ijy59s2ee6m
尽管这通常不是问题,但您可能希望名称更具描述性,例如:
FK_asset_tenant
这可以很容易地通过自定义完成ImplicitNamingStrategy。
此示例扩展了ImplicitNamingStrategyJpaCompliantImpl,但是您可以根据需要选择实现ImplicitNamingStrategy。
import org.hibernate.boot.model.naming.Identifier;
import org.hibernate.boot.model.naming.ImplicitForeignKeyNameSource;
import org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl;
public class CustomNamingStrategy extends ImplicitNamingStrategyJpaCompliantImpl {
@Override
public Identifier determineForeignKeyName(ImplicitForeignKeyNameSource source) {
return toIdentifier("FK_" + source.getTableName().getCanonicalName() + "_" + source.getReferencedTableName().getCanonicalName(), source.getBuildingContext());
}
}要告诉HibernateImplicitNamingStrategy使用哪个,请hibernate.implicit_naming_strategy在您的persistence.xml或 hibernate.cfg.xml文件中定义属性,如下所示:
<property name="hibernate.implicit_naming_strategy"
value="com.example.foo.bar.CustomNamingStrategy"/>或者,您可以在hibernate.properties文件中指定属性,如下所示:
hibernate.implicit_naming_strategy=com.example.foo.bar.CustomNamingStrategy
在此示例中,所有未明确定义的外键现在都name将从中获取其名称CustomNamingStrategy。
热门推荐
7 简短的二胎祝福语
10 简短霸气女儿生日 祝福语
11 祝福语高考小众诗句简短
12 元旦祝福语20秒简短
13 老师过年祝福语大全 简短
14 一生祝福语简短
15 产检祝福语简短霸气
16 朋友店开张祝福语简短
17 生日爱情祝福语大全简短
18 朋友女儿生日祝福语 简短