Hibernate中实体映射时的命名策略(1)

本文探讨了在Hibernate中如何自定义实体映射的命名策略,以适应数据库表和列的统一命名需求。介绍了历史版本中的命名策略接口及其继承结构,展示了如何通过自定义策略类并结合Spring Boot配置使其生效。同时,通过实例分析了不同策略下表名和列名的生成规则,揭示了注解与全局策略的优先级问题。
摘要由CSDN通过智能技术生成

有时候在实体类映射成数据库表时,我们并不太注意生成的表和列的名称,都是使用默认的名称策略,有的是干脆不使用@Column注解,直接使用字段名;有的则在@Column注解中使用name属性定义自己的名称,但是有时候比如说设计一个数据库有统一前缀或者后缀,上面两种方式就不适用了,而需要统一的设计命名策略,本篇文章对这部分进行总结!

1、 历史版本中命名策略NamingStrategy

在Hibernate的旧版本中,如果要指定应用于全局的命名策略,那么必然要涉及到NamingStrategy这个接口,所有想自定义命名策略的类都要直接或者间接地实现这个接口。这个接口的继承结构如下:

我们一般不直接实现NamingStrategy接口,因为这样我们会实现所有的接口方法,有时候这并不是必要的,所以我们一般直接继承NamingStrategy的实现类,比如DefaultNamingStrategy,这是Hibernate的默认的命名策略,或者ImprovedNamingStrategy使用_分隔字段,具体选择哪个类来继承主要是看我们自己的需求。这里我们使用Hibernate默认的命名策略DefaultNamingStrategy来继承。
首先我们先说明一下将要使用的三个类如下,和上一篇中使用的相同,分别是Person、Address和Direction类。

Person类

@Entity
public class Person implements Serializable{
   
private static final long serialVersionUID = 8849870114127659929L;

    @Id
    @GeneratedValue
    private Long id;

    @Column(nullable = false)
    private String name;

    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值