首页 > 代码库 > hbm配置文件 generator节点各种解释
hbm配置文件 generator节点各种解释
今天犯了个错误
generator节点class属性有这么几个值(主键生成策略方案):
assigned:由用户指定主键值
sequence:由oracle序列生成
increment:对类型为long,short,int的主键,以自增长的方式生成主键值,增量为1
identity:在oracle中没用,因为他是支持标志列的数据库能够用的
native: 由hibernate决策(大家自己测吧)
当我们配置节点属性为assigned时,并且没有为主键赋值:
当节点属性为increment时我们运行:
可以看到执行了查询语句,他在查询最大的gradeid,而我的表为空表,所以查不到任何值,并没有执行更新或者插入的操作
transction错误可以忽略,这个错误是因为之前测试的时候没有begintransaction(),在save前面加上session.beginTransaction();就能解决
解决方案:
- 在执行save()操作前,给id赋值
- 更改生成策略为sequence(前提有序列)
- 在表不为空的前提下使用increment
hbm配置文件 generator节点各种解释
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。