开发者社区> 问答> 正文

复合主键怎么设置一个主键自动增长

在Teacher类上注解了一个复合主键

@IdClass(TeacherPK.class)

将id和name设置为复合主键

@Id @GeneratedValue(strategy = GenerationType.IDENTITY) public int getId() { return id; }
@Id public String getName() { return name; }

我想让id自动增长,但是总是报错类型不匹配。

15:42:53,391 ERROR org.hibernate.property.BasicPropertyAccessor:118 - IllegalArgumentException in class: com.bjsxt.hibernate.TeacherPK, setter method of property: id
15:42:53,391 ERROR org.hibernate.property.BasicPropertyAccessor:122 - expected type: int, actual value: org.hibernate.id.IdentifierGeneratorHelper$2

表是建立成功的,但是无法插入数据,异常说是hibernate生成的类型是org.hibernate.id.IdentifierGeneratorHelper$2,和我teacherpk类中的id类型int不匹配。那么要如何装换过去?或者怎么解决我的问题?连得数据库是MySQL。

展开
收起
爵霸 2016-03-04 11:34:47 2997 0
1 条回答
写回答
取消 提交回答
  • 复合主键的自动增长意义何在?

    IDENTITY是在原有值上累加一个数字,默认是1.

    2019-07-17 18:52:01
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
RowKey与索引设计:技巧与案例分析 立即下载
事务、全局索引、透明分布式 立即下载
低代码开发师(初级)实战教程 立即下载