Java 将枚举和环境变量传递到SequenceStyleGenerator为字符串前缀序列生成方法

Java 将枚举和环境变量传递到SequenceStyleGenerator为字符串前缀序列生成方法,java,spring-boot,hibernate,jpa,spring-data-jpa,Java,Spring Boot,Hibernate,Jpa,Spring Data Jpa,我正在尝试创建一个字符串前缀类型为CUSTOM-SEQ--XXXX的序列,其中是环境变量,是枚举类,XXXX是要生成的数字序列 我已按实体创建如下: @实体 公营雇员{ @身份证 @GeneratedValue(策略=GenerationType.SEQUENCE,generator=“员工序列生成器”) @通用生成器( name=“员工序列生成器”, strategy=“com.ayman.domain.generator.StringPrefixedSequenceIdGenerator”,

我正在尝试创建一个字符串前缀类型为
CUSTOM-SEQ--XXXX
的序列,其中
是环境变量,
是枚举类,
XXXX
是要生成的数字序列

我已按实体创建如下:

@实体
公营雇员{
@身份证
@GeneratedValue(策略=GenerationType.SEQUENCE,generator=“员工序列生成器”)
@通用生成器(
name=“员工序列生成器”,
strategy=“com.ayman.domain.generator.StringPrefixedSequenceIdGenerator”,
参数={
@参数(name=StringPrefixedSequenceIdGenerator.INCREMENT_PARAM,value=“50”),//增量值
@参数(name=StringPrefixedSequenceIdgeGenerator.VALUE\u PREFIX\u参数,VALUE=“EMP”)}//字符串前缀
@列(name=“id”,updateable=false,nullable=false)
私有字符串id;
这是我的序列生成器<代码>StringPrefixedSequenceIdGenerator:

公共类StringPrefixedSequenceIdgeGenerator扩展SequenceStyleGenerator{
公共静态最终字符串值\u前缀\u参数=“valuePrefix”;
公共静态最终字符串值_PREFIX_DEFAULT=“”;
私有字符串值前缀;
私有字符串值prefix1;
@凌驾
公共可序列化生成(SharedSessionCompactImplementor会话,
对象)抛出HibernateeException{
返回值prefix+String.format(numberFormat,super.generate(session,object));
}
@凌驾
public void configure(类型、属性参数、,
ServiceRegistry(ServiceRegistry)引发映射异常{
super.configure(LongType.INSTANCE、params、serviceRegistry);
valuePrefix1=ConfigurationHelper.getString(值\u前缀\u参数,
customMapParams,值\前缀\默认值);
valuePrefix=ConfigurationHelper.getString(值\u前缀\u参数,
参数,值\前缀\默认值);
log.info(!!配置valueFormat:{}--{}),valuePrefix,valuePrefix1);
}
私有映射customMapParams(){
Map mapValues=新HashMap();
put(“EmployeeType”,EmployeeType.Temp.toString());
mapValues.put(“Env”,System.getEnv(“envvalue”);
返回映射值;
}
}
我得到的答复是
EMP_1

我想成为这样的人
EMP\u Temp\u envvalue\u 1


技术堆栈:

  • 弹簧靴
  • Spring数据JPA
  • Hibernate/JPA
  • 让我们继续这个节目