Hibernate自定义主键生成

参考:https://www.cnblogs.com/xmqa/p/6424386.html

Hibernate中自定义主键生成策略,并引用自己的编写的主键生成策略。

注意:主键生成策略由自己编写函数去实现

当使用Hibernate定义pojo的时候,有时候需要生成一定规则的数据表主键,这时候我们可以采用自定义主键生成方式去生成主键。

例如:

1、在pojo属性中定义数据表主键

@Id
@GenericGenerator(name = "xmqId", strategy = "com.xmq.core.XMQGenerator")  //定义一个主键生成器,并给该生成器命名,该生成器指定策略为一个类
@GeneratedValue(generator = "xmqId")  //通过名称引用我们自定义的那个主键生成器
@Column(name = "C_ID")
private String pk;

2、创建主键生成器

package com.xmq.core;

import java.io.Serializable;

import org.hibernate.engine.spi.SessionImplementor;
import org.hibernate.id.UUIDHexGenerator;

public class XMQGenerator extends UUIDHexGenerator {

    public XMQGenerator () {
        super();
    }

    @Override
    public Serializable generate(SessionImplementor session, Object obj) {
        return "PK_" + super.generate(session, obj);
    }


}

注意:在pojo的父类中有时候带有@MappedSuperclass注解,这表示这个父类不是一个完整的实体类,也不会映射到数据库表,但是他的属性都将映射到其子类的数据表字段中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值