hibernate annotation 怎么设置主键自动增长?sqlserver数据库

时间:2020-12-16 13:44:45
hibernate annotation 怎么设置主键自动增长?sqlserver数据库
hibernate annotation 怎么设置主键自动增长?sqlserver数据库
hibernate annotation 怎么设置主键自动增长?sqlserver数据库

还有就是实体如果成功设置了自增长,sqlserver还需要设置自增长吗?
求助。。。

10 个解决方案

#1


hibernate annotation 怎么设置主键自动增长?sqlserver数据库

#2


没人吗。。。?

#3


看你的代码应该没问题啊,是这么注解的,你有没有试过将identity改成native?

#4


刚看了下API文档,上面有这段话。The name of the primary key generator to use as specified in the SequenceGenerator or TableGenerator annotation. 
你试下在你的类名称上增加一个@SequenceGenerator(name="carSEQ",sequenceName="carSEQ_DB")
在getId()方法上面加
@Id
@GeneratedValue(generator = "carSEQ")
@GenericGenerator(name = "carSEQ", strategy = "native")
@Column(name = "id", unique = true, nullable = false)
试一下。不知道行不行。
再不行就只能等大牛了。
还有建议你把这种ID生成策略单独写一个类IdEntity,在类上注解@MappedSuperclass。以后写po就直接集成这个类,省去每个类都需要搞一个ID生成策略。

#5


我也是你的第一种写法  我的没问题啊 你的插入语句怎么写的

#6


@Id
@GenericGenerator(name="idGenerator",strategy="uuid")
@GeneratedValue(generator="idGenerator")
 我的是这样设置的,  都在提示 id的值不能为null嘛,你插入数据的时候设断点检查一下id是什么呀?
还有@Column(name="id", unique=true, nullable=false)  ,  //  nullable:表示该字段是否允许为null,默认为true  
unique:表示该字段是否是唯一标识,默认为false  

#7


有可能是你这个表的主键ID在数据库中没有设为标识列,也就是没有设置自动增长

#8


自动增长identity适用于MySQL、DB2、MS SQL Server,采用数据库生成的主键,用于为long、short、int类型生成唯一标识
使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常用)

#9


改成 auto试试,IDENTITY 需要数据库支持,也就是说你的建表sql文是否支持IDENTITY

#10


stretagy=AUTO

#1


hibernate annotation 怎么设置主键自动增长?sqlserver数据库

#2


没人吗。。。?

#3


看你的代码应该没问题啊,是这么注解的,你有没有试过将identity改成native?

#4


刚看了下API文档,上面有这段话。The name of the primary key generator to use as specified in the SequenceGenerator or TableGenerator annotation. 
你试下在你的类名称上增加一个@SequenceGenerator(name="carSEQ",sequenceName="carSEQ_DB")
在getId()方法上面加
@Id
@GeneratedValue(generator = "carSEQ")
@GenericGenerator(name = "carSEQ", strategy = "native")
@Column(name = "id", unique = true, nullable = false)
试一下。不知道行不行。
再不行就只能等大牛了。
还有建议你把这种ID生成策略单独写一个类IdEntity,在类上注解@MappedSuperclass。以后写po就直接集成这个类,省去每个类都需要搞一个ID生成策略。

#5


我也是你的第一种写法  我的没问题啊 你的插入语句怎么写的

#6


@Id
@GenericGenerator(name="idGenerator",strategy="uuid")
@GeneratedValue(generator="idGenerator")
 我的是这样设置的,  都在提示 id的值不能为null嘛,你插入数据的时候设断点检查一下id是什么呀?
还有@Column(name="id", unique=true, nullable=false)  ,  //  nullable:表示该字段是否允许为null,默认为true  
unique:表示该字段是否是唯一标识,默认为false  

#7


有可能是你这个表的主键ID在数据库中没有设为标识列,也就是没有设置自动增长

#8


自动增长identity适用于MySQL、DB2、MS SQL Server,采用数据库生成的主键,用于为long、short、int类型生成唯一标识
使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常用)

#9


改成 auto试试,IDENTITY 需要数据库支持,也就是说你的建表sql文是否支持IDENTITY

#10


stretagy=AUTO