要求-要在类型为binary(20)的MySQL表中具有主键,其中前4个字节表示当前时间戳(以秒为单位的时间),其余16个字节表示Type5(基于名称)的UUID(用破折号分隔)。
例如57093200aee62cab765950a48ef887bcfe87a065(57093200是纪元的十六进制表示),其余是UUID的十六进制表示,不带破折号
我相信这对于休眠4.2+来说是可能的,但是努力获得一个可行的模型
@Entity
@Table(name = "demo_table")
public class Request implements Serializable {
@Id
@GenericGenerator(name = "sequence_id_generator", strategy = "com.company.id.Generator")
@GeneratedValue(generator = "sequence_id_generator")
@Column(name="id")
private String id;
:
}
public class Generator implements IdentifierGenerator {
:
}
这里需要指导
最佳答案
在Generator类中,您只需要实现方法
Serializable generate(SessionImplementor session, Object object)
IdentifierGenerator接口的
https://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/id/IdentifierGenerator.html
(基本上,您可以返回按照您描述的格式格式化的String)