栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Hibernate 5.1.x命名策略(与Hibernate 4.x向后兼容)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Hibernate 5.1.x命名策略(与Hibernate 4.x向后兼容)

首先,您不需要

org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

因为它什么也不做,因此默认为Hibernate使用。

Hibernate 5没有您想要的策略。所有策略均符合JPA(生成名称,如

AppUser
)。因此,您需要实现自己的。

例如,物理命名策略

public class UnderscorePhysicalStartegy extends PhysicalNamingStrategyStandardImpl {    @Override    public Identifier toPhysicalTableName(Identifier name, JdbcEnvironment context) {        return context.getIdentifierHelper()     .toIdentifier(NamingStrategyUtils.classToname(name.getText()));    }}

它使用NamingStrategyUtils。

请记住,如果您指定一个明确的名称

@Entity@Table(name = "AppUser")public class AppUser {}

无论如何,您将有一个表名

app_user
。如果您不希望这种行为,请使用隐式命名策略。

我做了一些有关命名策略的研究。您可以引用Hibernate5NamingStrategy,它会生成带有下划线的表和列名称(如您所需要的)和约束名称(唯一,外键)。

此类用于生成名称:HibernateNamingStrategy。

如何使用

Hibernate5NamingStrategy

可以使用StrategyOptions配置命名策略。

例如,要使用不带前缀(例如

f_
)的策略:

StrategyOptions options = StrategyOptions.builder().withoutPrefixes().build();Hibernate5NamingStrategy strategy = new Hibernate5NamingStrategy(options);

其他示例:Hibernate 5隐式命名策略

除此之外,Hibernate 5的改进的NamingStrategy可以用来模拟Hibernate
4的行为

ImprovedNamingStrategy



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/402936.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号