hibernate mysql auto_increment_java – Hibernate不尊重MySQL auto_increment主键字段

我正在尝试学习Hibernate的工作原理,并且我遇到了几乎不可接受的学习曲线。我看不到如何让Hibernate尊重我的对象的auto_increment策略。而是使用现有的ID覆盖数据库中的条目,以1开头。

我有一个简单的Foo对象,由一个如下定义的MySQL表支持:

CREATE TABLE `Foo` (

`fooId` int(11) NOT NULL AUTO_INCREMENT,

PRIMARY KEY (`fooId`),

)

我已经确认使用SQL插入多个Foo对象(插入Foo values();)做正确的事情。

我的Java类具有使用如下注释指定的ID:

@Id

@GeneratedValue(strategy=GenerationType.AUTO)

@Column(name="fooId")

private Integer id;

然后我执行一些测试代码,简单地实例化Foo对象并将它们保存到数据库(使用session.save(obj))。看起来它使用自己的主键序列,从一开始,不看表的关键策略。它覆盖了所有的东西。

我已经尝试了@GeneratedValue位的变体(使用所有可能的策略,离开括号子句)。有人甚至建议完全离开GeneratedValue。没有什么似乎工作。

我要离开吗?我失踪了什么Hibernate真的这么难吗?

(如果任何人有另一种Java数据库持久性选项,请建议一个,我正在制作原型,而不是持久的mondo工程项目)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值