自定义主键生成策略(No2)
本节参考:https://www.jianshu.com/p/3b384e873232
1. 默认id自增(之后在补充)
2. 框架自带主键生成策略
查看该接口的默认实现类
import org.hibernate.id.IdentifierGenerator;
更改基类主键策略
@Id
@GenericGenerator(name = "uuidKey" ,strategy = "org.hibernate.id.UUIDGenerator") // 框子已实现的主键策略
@GeneratedValue(generator = "uuidKey")
@Column(length = 36)
private String id;
配置完成,测试通过。
3. 自定定义组件生成策略
按自己的需要实现该接口
package com.example.createpj.data.utils;
import org.hibernate.HibernateException;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.id.IdentifierGenerator;
import java.io.Serializable;
import java.util.UUID;
/**
* 自定义主键生成策略
* com.lc.data.utils.MyIdGenerator IdentityGenerator
*/
public class MyUuidKeyGenerator implements IdentifierGenerator {
@Override
public Serializable generate(SharedSessionContractImplementor sharedSessionContractImplementor, Object o) throws HibernateException {
return (Serializable)UUID.randomUUID().toString();
}
}
更改基类主键策略
@Id
@GenericGenerator(name = "uuidKey" ,strategy = "com.lc.data.utils.MyUuidKeyGenerator") //自定UUid
@GeneratedValue(generator = "uuidKey")
@Column(length = 36)
private String id;
配置完成,测试通过。