首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Hibernate @GeneratedValue & @SequenceGenerator在本机查询中未获得正确的序列

Spring Hibernate @GeneratedValue & @SequenceGenerator在本机查询中未获得正确的序列
EN

Stack Overflow用户
提问于 2021-07-22 00:22:27
回答 1查看 28关注 0票数 0

以下是实体配置:

代码语言:javascript
复制
@Entity
@SequenceGenerator(
    name = "sessionInfoIdSeq",
    sequenceName = "SESSIONINFO_ID_SEQ"
)
public class SessionInfo implements Transformable {
    @Id
    @GeneratedValue(
        strategy = GenerationType.AUTO,
        generator = "sessionInfoIdSeq"
    )
    private Long id;

这意味着在将数据插入数据库时,将从SESSIONINFO_ID_SEQ中获取id:

代码语言:javascript
复制
select nextval ('SESSIONINFO_ID_SEQ')

但问题是,Spring boot应用程序+ Hibernate获得的下一个序列号与我们在Datagrip或DBeaver中运行原生查询时的序列号不同,尽管我看到这个应用程序使用了DataGrip中使用的相同查询。

Spring boot + hibernate在运行时: 12749在DataGrip中运行本机查询: 12797

我不确定为什么会出现这种情况。但问题是,我如何同步序列号,当应用程序接受新的序列号时,我们可以在Datagrip或DBeaver上看到相同的序列号。

让我知道问题是否存在或不正确。预先感谢您的所有支持。

EN

回答 1

Stack Overflow用户

发布于 2021-07-22 01:01:36

Use可以使用属性级注释,如下所示:

代码语言:javascript
复制
@Id
@GeneratedValue(generator = "sequence-generator")
@GenericGenerator(
  name = "sequence-generator",
  strategy = "org.hibernate.id.enhanced.SequenceStyleGenerator",
  parameters = {
    @Parameter(name = "sequence_name", value = "SESSIONINFO_ID_SEQ"),
    @Parameter(name = "initial_value", value = "4"),
    @Parameter(name = "increment_size", value = "1")
    }
)
private long id;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68473159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档