@Id @GeneratedValue(strategy=GenerationType.TABLE,generator="gen") @TableGenerator(name = "gen", table = "tb_generator", pkColumnName = "gen_name", valueColumnName = "gen_value", pkColumnValue = "GEN_PK", allocationSize = 1) private Long id;设置ID的生成策略;后台提示异常信息:1.全部数据库通用的@GeneratedValue(generator="UUID")2.useGeneratedKeys的@GeneratedValue(generator=\"JDBC\") 3.类似mysql数据库的@GeneratedValue(strategy=GenerationType.IDENTITY[,generator="Mysql"])意思是不支持这种方式吗?
5 回答
已采纳
慕慕5256561
TA贡献1条经验 获得超1个赞
@GeneratedValue 用于标注主键的生成策略,通过strategy 属性指定。默认情况下,JPA 自动选择一个最适合底层数据库的主键生成策略:SqlServer对应identity,MySQL 对应 auto increment。
在javax.persistence.GenerationType中定义了以下几种可供选择的策略:
–IDENTITY:采用数据库ID自增长的方式来自增主键字段,Oracle 不支持这种方式;
–AUTO: JPA自动选择合适的策略,是默认选项;
–SEQUENCE:通过序列产生主键,通过@SequenceGenerator 注解指定序列名,MySql不支持这种方式
–TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。
应该是数据库的问题不支持
添加回答
举报
0/150
提交
取消