【问题标题】:Custom wrapper for id keyid 键的自定义包装器
【发布时间】:2011-09-03 18:40:27
【问题描述】:

我想在自定义类中包装 id。像这样

@Entity
@Table(name = "USERS")
public class User {
    @EmbeddedId
    UserId id;
}
@Embeddable
public class UserId implements Serializable {
    private Long value;
}

value 自动生成 UserId 的问题。我应该怎么做才能使value 上的@GeneratedValue 可行?

顺便说一句,如果id 能够自动初始化就太好了。

【问题讨论】:

    标签: java hibernate domain-driven-design identity


    【解决方案1】:

    据我所知,Hibernate 只为标记为@Id 的字段生成值。我发现this 的帖子和哈代的回答支持这一点。

    我们尝试过类似的操作,并通过预插入侦听器对其进行管理。虽然它相当复杂且不理想。此外,您可能会在不同的数据库平台上发现不同的行为。使用 Oracle 序列意味着您需要在插入前分配值(Hibernate 执行选择以获取值,然后进行插入)但使用 MySQL 时,自动递增字段将分配值,hibernate 执行插入以生成自动生成的值,然后选择以找出值是什么。

    【讨论】:

    • 感谢您的回复。很奇怪,不支持这样的功能,因为它可以通用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 2019-12-08
    • 1970-01-01
    相关资源
    最近更新 更多