【问题标题】:Hibernate sequence, use the specific sequencehibernate序列,使用具体的序列
【发布时间】:2013-04-19 07:26:39
【问题描述】:

今天我负责数据库的老板告诉我,我在 JPA/Hibernate 中使用了错误的序列,但我没有,所以我检查了为什么我生成的表条目的 ID 比生成的正常(触发器)更高条目。
我发现This on SO 对我来说太可怕了,因为我在数据库触发器中使用这个数据库序列来生成条目。这意味着,据我所知。在 50 倍的时间内,我的数据库将开始访问我的 Java 应用程序生成的序列号。

为避免这种情况,我需要使用特定的序列,而不是序列*50。但是还没有找到如何做到这一点,有人可以帮助我吗?

提前致谢

目前是这样定义的:

@Id
@Column(name = "PVP_COST_ELEMENTS_ID")
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "wtStatSEQ")
@SequenceGenerator(name = "wtStatSEQ", sequenceName = "warehouse.wt_stat_SEQ")

【问题讨论】:

    标签: database oracle hibernate sequence sequences


    【解决方案1】:

    在hibernate中你可以通过注解明确指定使用的seq

    @Id
    @Column(name = "COLUMN_NAME", nullable = false)
    @GeneratedValue(strategy = AUTO, generator = "yourEntitySeqGen")
    @SequenceGenerator(name = "yourEntitySeqGen", sequenceName = "SEQUENCE_NAME_IN_YOUR_DATABASE")
    

    干杯

    【讨论】:

    • 稍微更新了 Q。所以是因为 strategy = auto/sequence ? :)
    猜你喜欢
    • 2014-06-24
    • 2011-05-16
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 2017-09-29
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多