gpt4 book ai didi

java - 使用 Hibernate 实现 MySQL 中二进制主键的自定义 IdentifierGenerator

转载 作者:行者123 更新时间:2023-11-29 21:09:25 28 4
gpt4 key购买 nike

要求 - MySQL 表中具有二进制 (20) 类型的主键,其中前 4 个字节表示当前时间戳(以秒为单位的纪元),其余 16 个字节表示 Type5(基于名称)UUID(去掉破折号)。

例如。 57093200aee62cab765950a48ef887bcfe87a065(57093200是纪元的十六进制表示),其余是不带破折号的UUID的十六进制表示

我相信 hibernate 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 接口(interface) https://docs.jboss.org/hibernate/orm/3.5/api/org/hibernate/id/IdentifierGenerator.html
(基本上你可以只返回你所描述的格式化字符串)

关于java - 使用 Hibernate 实现 MySQL 中二进制主键的自定义 IdentifierGenerator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36521097/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com