【问题标题】:GeneratedValue(strategy = GenerationType.AUTO)GeneratedValue(策略 = GenerationType.AUTO)
【发布时间】:2013-09-10 22:56:52
【问题描述】:

是否可以将属性(不是主键)设为@GeneratedValue(strategy = GenerationType.AUTO)

我已经尝试过将其放入我的代码中,但它不起作用。

@Column(name = "form_rg")
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer rg;

如果不是,我该如何处理?

有什么帮助吗?

【问题讨论】:

    标签: hibernate


    【解决方案1】:

    使用休眠是不可能的。

    来自GeneratedValue 类的文档证明:

    @GeneratedValue注解 可以应用于实体的主键属性或字段,或 映射的超类与 {@link Id} 注释结合使用。

    解决方案:

    1. hibernate-jpa-sequence-non-id

    2. 创建单独的单例类,用于为每个实体分配非 ID 属性

    【讨论】:

    • 当我创建该 GeneralSequenceNumber 类的实例时,它会返回一个递增的数字还是需要将其保存为表中的持久行才能获得该数字?
    • 实际上您至少需要在设置idGeneralSequenceNumber 实体上调用一个方法。例如,persistsave 在 Hibernate 会话中
    • 你能解释一下为什么你需要这个功能吗?值得吗?
    • 我创建了一个类,它需要一个递增的排名以在我的网页中保持一定的顺序,所以我需要自动给它们一个递增的数字,我可以随时编辑。这个类与另一个类相关,所以我需要它是一个属性而不是主键。
    • IMO,为此目的,最好创建单独的类来处理设置增量值,如有必要进行更改。您可以更好地控制排名值,并且可以更轻松地创建附加功能。
    猜你喜欢
    • 1970-01-01
    • 2012-12-10
    • 2023-03-26
    • 2017-09-24
    • 2011-03-05
    • 1970-01-01
    • 2022-07-12
    • 2011-07-05
    • 1970-01-01
    相关资源
    最近更新 更多