Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SQL Server和其他服务器的Hibernate生成类型_Java_Sql Server_Oracle_Hibernate_Auto Increment - Fatal编程技术网

Java SQL Server和其他服务器的Hibernate生成类型

Java SQL Server和其他服务器的Hibernate生成类型,java,sql-server,oracle,hibernate,auto-increment,Java,Sql Server,Oracle,Hibernate,Auto Increment,我编写的程序使用不同的数据库,如sql server、oracle等。我的问题是我无法处理GenerationType并在表中插入正确的行。使用GenerationType.AUTO和hibernate.id.new_generator_映射:=在sql server中为false,我的程序可以将新行插入表中,但id始终为null,当GenerationType为IDENTITY时也会出现同样的问题 我试图只为sql server添加自动增量,但Liquibase对我大喊大叫,mssql不支持自

我编写的程序使用不同的数据库,如sql server、oracle等。我的问题是我无法处理GenerationType并在表中插入正确的行。使用GenerationType.AUTO和hibernate.id.new_generator_映射:=在sql server中为false,我的程序可以将新行插入表中,但id始终为null,当GenerationType为IDENTITY时也会出现同样的问题

我试图只为sql server添加自动增量,但Liquibase对我大喊大叫,mssql不支持自动增量。当我为Oracle和SQL Server使用序列时,我的程序试图从生成器中获取下一个值,但它无法执行无限循环。即使我为ID设置了默认值,它也不会增加这个值

这是我的密码:

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "name")
@SequenceGenerator(name = "name", sequenceName = "SEQ", allocationSize = 1)
private Long id;

我希望能够将自动递增索引添加到表中,它应该适用于SQL Server数据库,我不希望使用表策略生成,因为它需要在db中添加表。

问题已解决。我在Liquibase xml文件中添加了一个条件,用于检查db是否为mssql类型,以及它是否为true。脚本将删除ID列,并使用IDENTITY1,1选项将其添加

唯一的问题是,现在我必须切换前面提到的hibernate.id.new_generator_mappings设置