当前位置: 首页 > 面试题库 >

生成的序列以1开头,而不是在注释中设置的1000开头

葛烨
2023-03-14
问题内容

我想问一些有关Hibernate创建的数据库序列的帮助。

我在我的实体类中有此批注-下面的代码-
为了对伙伴表有单独的顺序。我希望序列从1000开始,因为我在部署期间使用import.sql将测试数据插入到数据库中,并且希望避免违反约束。但是,当我要持久存储数据时,我遇到了违反约束的异常,它告知我partner_id
= 2已经存在的事实。好像我错过了什么。

    @Id
    @Column(name = "partner_id")
    @SequenceGenerator(initialValue=1000, 
                        allocationSize=1,
                        name = "partner_sequence", 
                        sequenceName="partner_sequence")
    @GeneratedValue(generator="partner_sequence")
    private Long partnerId;

生成的序列如下所示:

CREATE SEQUENCE partner_sequence
  INCREMENT 1
  MINVALUE 1
  MAXVALUE 9223372036854775807
  START 1
  CACHE 1;
ALTER TABLE partner_sequence
  OWNER TO postgres;

我使用的是postgres 9.1。

我错过了什么?这就是我如何实现自己想要的方式?

感谢您的任何帮助!


问题答案:

initialValue并且alocattionSize特定于hilo使用序列的算法。根据这个 initialValue甚至没有支持。我什至看不到如何从Java层支持它,因为序列值是在数据库中生成的。



 类似资料:
  • 问题内容: 我想要一个JPA / Hibernate(最好是JPA)批注,它可以生成列的值,该值不是主键,并且它不能从1开始。 从我看到的内容来看,JPA无法使用@GeneratedValue和@SequenceGenerator和@TableGenerator做到这一点。或其他。 我看到了一个带有额外表的解决方案,但我发现它并不优雅。 我可以使用Hibernate注释,因为我已经有了hibern

  • 本文向大家介绍如何在MySQL中创建以auto_increment开头于1000的INT字段(不是主键)?,包括了如何在MySQL中创建以auto_increment开头于1000的INT字段(不是主键)?的使用技巧和注意事项,需要的朋友参考一下 为此,您需要将AUTO_INCREMENT设置为1000- 让我们首先创建一个表- 以下是将值设置为1000的自动增量的查询- 使用插入命令在表中插入一

  • 我正在尝试将下面的文本与ANTLR语法匹配: ANTLR语法是: 我得到的错误是: 我猜语法是合理的,但为什么会出现错误呢? null 要匹配的文档: 语法1: 在语法1中,跳过了T1,但不跳过T2中的T1部分。T2将在lexer阶段匹配输入文本。(即使我们把T2放在T1之后,T2还是会匹配的。我认为ANTLR为了最长的令牌做了一些贪婪的匹配。) 因此,正如@macmoonshine所说,我确实必

  • 问题内容: 我有一个LONG .txt文件,其中包含将近6000行!有时我需要检索信息。在5000行中。是否可以从5000行开始读取而不是从头开始? 谢谢。 问题答案: 6000条线长与短取决于平均线长。即使每行100个字符,这也不算长。 不过,如果您知道5000行从哪里开始,那么您可以从5000行读取。不幸的是,大多数时候您必须阅读第1至4999行才能找到答案。

  • 正如标题所说。雅加达注释不在我的类路径中,所以我不知道为什么jOOQ用这些注释生成Java类。我希望能够告诉它不要使用它,或者更确切地说有一种方法来指定它使用的验证注释。 我唯一设置为true的属性是,然后到处都有雅加达注释。你知道如何配置它来使用javax之类的东西吗? 我使用的是jOOQ codegen 3.16.4

  • 我正在尝试运行一个DynamoDB查询,该查询说我想要不以特定值开头的项目。我似乎找不到这样做的方法。 我尝试了以下4种评估方法,但都不管用。每一个都给我一个无效的运算符错误。 我已经尝试过的我的关键条件表达式如下所示: 如果删除not运算符,则会出现以下错误: KeyConditionExpressions每个键只能包含一个条件 在dynamodb中有这样做的方法吗?