通过注解指定HSQLDB身份的初始值
我可以在 HSQLDB 数据库之上使用 Hibernate/JPA 注释指定 IDENTITY 列的初始值吗?到目前为止,相关源代码如下所示:
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
return id;
}
生成的 DDL 如下所示:
id bigint generated by default as identity (start with 1)
我想做的是通过注释使 ID 以 10,000 的值开头。
注意:这是一个新应用程序,因此我使用最新版本的 Hibernate 和 HSQLDB。
Can I specify the initial value for an IDENTITY column using Hibernate/JPA annotations on top of an HSQLDB database? The relevant source code looks like this so far:
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
public Long getId() {
return id;
}
The generated DDL looks like this:
id bigint generated by default as identity (start with 1)
What I'd like to do is make the ID start with a value of 10,000 via annotations.
Note: This is a new application so I'm using the latest versions of Hibernate and HSQLDB.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于这个问题最初并未被标记为 Hibernate,因此 Hibernate 专家可能错过了这个问题。我刚刚注意到 Hibernate HSQLDialect 返回(从 1 开始)用于所有身份创建。因此可能没有办法覆盖它。
您应该研究如何在创建表之后、添加数据之前执行 SQL 语句来重置标识。 SQL 看起来像:
As this question was not initially tagged as Hibernate, it was probably missed by Hibernate experts. I just noticed the Hibernate HSQLDialect returns the (start with 1) for all identity creation. Therefore there is probably no way to override this.
You should be looking into how to execute an SQL statement to reset the identity AFTER the table is created but before data is added. The SQL looks like: