Hibernate+Oracle使用序列
来源:互联网 发布:用php做99乘法表 编辑:程序博客网 时间:2024/05/16 18:15
最近自己搞一个项目,使用的是S2SH+Oracle其中模型中使用了Oracle的序列,Hibernate模型中使用序列的方法如下:
其中USER_ID为一个已经存在序列(该序列命名不规范,还望大家注意)。
在使用序列的时候,出现了很多错误,现在总结一下:
1、首先是不入库,Hibernate始终只打印如下一句SQL
Hibernate: select USER_ID.nextval from dual
按照正常情况来说,应该是Hibernate查询的序列的下一个值之后,直接set到UserID中的,然后再进行Insert操作,但是此处,Hibernate始终不进行insert操作,后面分析,是由于在进行session.save(user);时,未开启失误,而且保存之后,也没有进行事物的commit操作,因此修改代码,添加上事物操作(目前需手动管理失误,后续通过AOP来管理)
2、进行上述操作之后,还是不能入库,而且查询的时候始终提示语法错误,后面仔细排查发现,原来是数据库用户配置错啦.....太不仔细了!
2、进行查询时,提示如下异常org.hibernate.PropertyAccessException,在网上查了发现是由于模型中,定义了Int型,而数据库中存在为空的场景,所以需要将模型中所有为Int的修改为Integer。
后续如果还有问题,继续在此篇文章上更新
@Id@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "userID")@SequenceGenerator(name = "userID", allocationSize = 1, initialValue = 1, sequenceName = "USER_ID")public Integer getUserID() {return userID;}
其中USER_ID为一个已经存在序列(该序列命名不规范,还望大家注意)。
在使用序列的时候,出现了很多错误,现在总结一下:
1、首先是不入库,Hibernate始终只打印如下一句SQL
Hibernate: select USER_ID.nextval from dual
按照正常情况来说,应该是Hibernate查询的序列的下一个值之后,直接set到UserID中的,然后再进行Insert操作,但是此处,Hibernate始终不进行insert操作,后面分析,是由于在进行session.save(user);时,未开启失误,而且保存之后,也没有进行事物的commit操作,因此修改代码,添加上事物操作(目前需手动管理失误,后续通过AOP来管理)
Session session = getSession();Transaction tr=session.beginTransaction();try {session.save(user);tr.commit();session.close();session.flush();} catch (HibernateException e) {
2、进行上述操作之后,还是不能入库,而且查询的时候始终提示语法错误,后面仔细排查发现,原来是数据库用户配置错啦.....太不仔细了!
2、进行查询时,提示如下异常org.hibernate.PropertyAccessException,在网上查了发现是由于模型中,定义了Int型,而数据库中存在为空的场景,所以需要将模型中所有为Int的修改为Integer。
后续如果还有问题,继续在此篇文章上更新
- Hibernate+Oracle使用序列
- 在hibernate中使用Oracle序列注意事项
- hibernate中使用oracle的序列作为主键问题
- 大家用hibernate的时候, 使用hibernate的sequence自动增长序列, 数据库是oracle
- oracle序列的使用
- oracle 序列的使用
- oracle中使用序列
- oracle 序列的使用
- mybatis使用oracle序列
- Oracle 序列插入使用
- Oracle序列的使用
- jpa使用oracle序列
- jpa使用oracle序列
- 使用Oracle生成序列
- Oracle 序列使用
- hibernate注解 映射序列到Oracle
- hibernate框架oracle数据库的序列实现
- oracle中如何使用序列
- 基于Cactus的接口自动化
- Shell编程
- Google SVN
- 设计模式之命令模式
- 构造函数中的异常处理
- Hibernate+Oracle使用序列
- Lucene 实战:快速开始 创建索引
- Hibernate中实体的三种状态
- Hibernate获取序列
- Linux和Oracle常用工具
- 归并排序和插入排序
- java面试资料大全
- MongoDB系列之一:windows安装
- MongoDB系列之二:简单操作