1. 实体类代码
@Entity
@Data
@Table(name = "user")
public class User implements Serializable {
@Id
@GenericGenerator(name = "customerGenerator", strategy = "CustomerGeneratorClass", parameters = {@org.hibernate.annotations.Parameter(name = "paramName", value = "paramValue")}) //parameters为传递的参数
@GeneratedValue(generator = "customerGenerator")
//本条记录的唯一标识,主键
@Column(name = "code")
private String code;
//名称
@Column(name = "name")
private String name;
//邮箱
@Column(name = "email")
private String email;
}
2. 生成器代码
public class CustomerGeneratorClass extends AbstractUUIDGenerator implements Configurable {
private String variable;
public void configure(Type type, Properties params, ServiceRegistry s) {
this.variables = params.getProperty("paramName");//该参数为实体类传入的参数
}
public Serializable generate(SessionImplementor session, Object obj) {
String id = "";
/*
主键id的生成过程
*/
return id;
}
}