【发布时间】:2020-01-06 05:46:53
【问题描述】:
我编写的程序使用不同的数据库,如 sql server、oracle 等。我的问题是我无法处理 GenerationType 并将正确的行插入表中。在 sql server 中使用 GenerationType.AUTO 和 hibernate.id.new_generator_mappings := false,我的程序能够将新行插入表中,但 ID 始终为空,同样的问题是 GenerationType 为 IDENTITY。
我尝试仅为 sql server 添加自动增量,但 Liquibase 对我大喊,mssql 不支持它。当我使用 Sequences for Oracle 以及 SQL Server 时,我的程序试图从生成器中获取“下一个值”,但它不能并且执行无限循环。即使我为 ID 设置了默认值,它也不会增加这个值。
这是我的代码:
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "name")
@SequenceGenerator(name = "name", sequenceName = "SEQ", allocationSize = 1)
private Long id;
我希望能够将自动递增索引添加到表中,它应该适用于 SQL Server 数据库,我不想使用 Table 策略进行生成,因为它需要在 db 中添加额外的表。
【问题讨论】:
标签: java sql-server oracle hibernate auto-increment