`
michael8335
  • 浏览: 184447 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Hibernate+Oracle使用序列

    博客分类:
  • S2SH
阅读更多
最近自己搞一个项目,使用的是S2SH+Oracle其中模型中使用了Oracle的序列,Hibernate模型中使用序列的方法如下:
@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。
后续如果还有问题,继续在此篇文章上更新
1
0
分享到:
评论

相关推荐

    struts2.0+hibernate3.3+spring2.5的简单程序

    根据自己的oracle数据库修改WEB-INF下面的application-context.xml的数据库配置,别忘了建序列SEQ_TEST_ID struts2+hibernate3.3+spring2.5,我采用的是jboss服务器,用myeclipse6.0+jdk6.0开发的。 至于其他的问题...

    Struts2 Spring3 Hibernate3.3框架整合

    Struts2 Spring3 Hibernate3.3框架整合,增删改查,包含有数据库建表语句,包含有JAR包,包含有源代码。...使用的是Oracle的序列来提供的主键自增,建表和建立序列的sql语句,已经放在工程里面的WEBROOT目录下面了。

    oracle 入门很简单.zip

    目录 第1章数据库简介ppt 第2章实体-联系模型ppt 第3章Oralce数据库与数据表ppt 第4章sQL查询.ppt 第5章SQL更新数据.ppt 第6章Oracle中的字符型及ppt 第7章Oracle中的数值型ppt ...第22章Oracle+Hibernate应用实例.ppt

    jax-ws 方式发布web Service 后台用Hibernate实现,前端.NET通过引用服务方式实现

    rar中包含整个项目的源码和数据库生成脚本,采用jax-ws发布Web Service服务,支持java客户端和.Net客户端调用,数据库采用oracle10g,里面有创建数据库脚本文件createTable_Oracle10g.sql,由于Hibernate映射表中会...

    Hibernate注解

    * 5.identity 使用SQL Server和MySQL的自增字段,这个方法不能放到Oracle中,Oracle不支持自增字段,要设定sequence(MySQL和SQL Server中很常用)。等同于JPA中的IDENTITY * 例:@GeneratedValue(generator = ...

    SSH项目完整示例-北大青鸟期末考试

    SSH(Struts2+Spring+Hibernate)框架示例,该项目使用了Eclipse、tomcat、Oracle开发工具完成了登录、注册、增、删、改、查、分页等相关业务,用到了数据库三张表,一个是用户信息表、一个是图书类型、一个是图书...

    bank_web_application:Java,Spring MVC,Oracle

    Jackson 2.4.1,用于序列化和反序列化JSON请求和响应。 Log4j 1.2.17,用于记录系统中的所有操作Sitemesh 3.0-alpha-2用于将视图(jsp页面)拆分为多个组件。对于客户: 对于员工: 对于管理员:

    传奇八方蔗糖

    它旨在成为一种生成数据库密钥的工具,而不必依赖于SQL Server的身份列或Oracle的序列之类的DBMS功能。 该存储库不应该负责生成任何信息,它只能是一个存储。 必须在应用程序层中定义主键,甚至代理键。 可以使用...

    java面试题

    如果不使用Hibernate自带的分页,则采用什么方式分页? 62 71.16. hibernate中一对多配置文件返回的是什么? 63 71.17. hibernate拒绝连接、服务器崩溃的原因?最少写5个 63 71.18. Hibernate主键介绍 63 71.18.1. ...

    Java面试宝典2020修订版V1.0.1.doc

    11、什么是java序列化,如何实现java序列化? 59 12、编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad。 60 13、java中有几种类型的流?JDK为每种类型的流...

    QxOrm-Source 数据库操作库

    基于每个类的简单C++设置函数(如Java中的HibernateXML映射文件),QxOrm库提供以下功能: 持久性:支持最常见的数据库,如SQLite,MySQL,PostgreSQL,Oracle,MS SQL Server,MongoDB(具有1-1,1-n,n-1和n-n...

    DBKING使用指南

    再比如获取数据库序列,我们采用了统一的算法,不同的数据库都使用同一个接口来获取序列,而且这个方法可以在多线程环境下使用,甚至是集群环境下都没有问题。  5、提供多种使用方式。可以单独使用,也可以结合...

    Java学习笔记-个人整理的

    {13.3}连接Oracle数据库及操作}{192}{section.13.3} {13.4}批处理模式}{195}{section.13.4} {13.5}分页查询}{196}{section.13.5} {13.5.1}MySQL}{198}{subsection.13.5.1} {13.6}连接池}{199}{section.13.6} {...

    java开源包8

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    整理后java开发全套达内学习笔记(含练习)

    export ORACLE_HOME=/oracledata/.../bin: BufferedReader建构时接受java.io.Reader物件 可使用java.io.InputStreamReader 例: import java.io.InputStreamReader; import java.io.BufferedReader; class n{ ...

    千方百计笔试题大全

    76、什么是java序列化,如何实现java序列化? 18 77、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 18 78、abstract class Name { private String name; public abstract boolean isStupidName...

    java面试宝典

    76、什么是java序列化,如何实现java序列化? 18 77、简述synchronized和java.util.concurrent.locks.Lock的异同 ? 18 78、abstract class Name { private String name; public abstract boolean isStupidName...

    java开源包1

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包11

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

    java开源包2

    开发它是用于在UTF-8 Oracle实例中使用ASCII编码的Oracle 数据库中来正确的传输非ASCII字符。 Java模板语言 Beetl Beetl,是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,...

Global site tag (gtag.js) - Google Analytics