`
michael8335
  • 浏览: 189497 次
  • 性别: 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.3.6+hibernate4.3.5+Spring 4.0.5+oracle 10g的集成

    10. **序列(Sequence)**:Oracle中使用序列生成唯一ID,如USER_SEQ,这是主键ID的来源。 在实际开发中,为了确保项目的顺利进行,开发者需要熟悉这些技术的使用,同时关注版本兼容性问题,避免因版本过新或过旧...

    基于struts2_hibernate3+oracle.1_dwr开发的学生管理系统

    《基于Struts2_Hibernate3+Oracle.1_DWR的学生管理系统详解》 在现代软件开发领域,企业级应用系统的构建通常依赖于成熟的框架和技术栈。本文将深入探讨一个基于Struts2、Hibernate3和Oracle数据库,结合Direct Web...

    struts+hibernate+spring整合

    - 在 Oracle 数据库中创建存储用户信息的表和序列,以便于生成唯一的用户 ID。 3. **Spring 配置** - 添加 Spring 的 Web 库,定义 Spring 配置文件。 - 配置数据源和 SessionFactory,使 Spring 能够管理 ...

    springMVC+hibernate+spring4.3 jar包整合

    7. 使用Jackson库进行JSON序列化与反序列化:在需要的地方引入Jackson库,通过 ObjectMapper 进行对象与JSON字符串的转换。 8. 处理文件上传:如果需要支持文件上传,可以使用Commons FileUpload库,结合Spring MVC...

    Struts2+Hibernate+Spring项目小结――Hibernate部分

    <prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect <prop key="hibernate.show_sql">false <!-- 其他属性 --> <value>classpath:com/.../bean</value> ``` 在这里,`...

    在hibernate中实现oracle的自动增长

    为了在Hibernate中利用Oracle的序列(sequence)特性,需要在Hibernate的映射文件中进行相应的配置。以下是一个示例,展示了如何为`Department`实体类配置序列生成器(sequence generator): ```xml <hibernate-...

    oracle自增序列

    Oracle数据库提供了强大的序列管理功能,可以方便地创建、管理和使用序列。本文将详细介绍如何在Oracle数据库中创建自增序列,并深入探讨其相关属性和应用场景。 #### 一、什么是Oracle自增序列? Oracle自增序列...

    hibernate连接oracle数据库.pdf

    本文详细介绍了如何使用Hibernate连接Oracle数据库进行开发,涵盖了环境搭建、数据库表结构设计、配置文件设置以及实体映射与持久化操作等多个方面。通过本文的学习,读者应能掌握使用Hibernate框架进行Oracle数据库...

    hibernate连接oracle数据库.doc

    【hibernate 连接 oracle 数据库】 一、Hibernate 概述 Hibernate 是一个流行的 Java 对象关系映射(ORM)框架,它提供了一种在 Java 应用程序中管理和操作关系数据库的方法。ORM 技术的核心思想是将面向对象的模型...

    快速Java和Oracle集成SSH开发注意问题.pdf

    在Oracle中,建议使用`sequence`作为主键生成策略,而非其他数据库可能使用的`identity`(自增长)或`native`。例如: ```xml <param name="sequence">test_seq ``` **2. Hibernate配置文件更改** - ...

    Hibernate Oracle sequence的使用技巧

    本文将详细介绍如何在Hibernate中使用Oracle sequence,以及在使用过程中应注意的一些事项。 首先,我们来看如何为不同的表创建各自的sequence。在Oracle数据库中,你可以通过SQL语句创建一个sequence,例如: ```...

    基于Oracle数据库的图书管理系统

    1. **Oracle数据库**:Oracle是全球广泛使用的商业关系型数据库管理系统,以其高性能、高可靠性著称。在图书管理系统中,Oracle用于存储图书信息、用户信息、借阅记录等数据,确保数据的安全性和一致性。 2. **J2EE...

    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开发的。 至于其他的问题...

    hibernate映射主键生成策略native

    - [Oracle序列文档](https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/CREATE-SEQUENCE.html#GUID-D3178A7D-13B4-426D-830F-BE78A74E7631) - [Hibernate hbm2ddl属性详解]...

    Struts2.1.6 + Spring2.5.6 + Hibernate3.3.2+json+junit4所有的jar包大集合

    Java提供了多个库,如org.json或Jackson,来处理JSON对象的序列化和反序列化。 **JUnit4** 是Java领域广泛使用的单元测试框架,它极大地简化了测试代码的编写,引入了注解和测试套件等概念,使测试过程更加高效和...

    Hibernate 简单使用 hibernate, ppt

    在某些情况下,如Oracle的序列或SQL Server的自增主键,Hibernate会自动适应。然而,基于特定数据库的主键生成方式可能会带来问题,因此推荐使用更通用的方法,如Hibernate的唯一值生成算法(基于IP、JVM启动时间和...

    struts+hibernate增删改查 word版

    其中 `id` 字段为主键,使用 Oracle 序列 `admin_seq` 自动生成。 #### 五、持久化层设计 接下来,创建 Admin 对象的持久化层。使用 Hibernate 可以自动生成 `.hbm.xml` 文件以及相关的 Bean 文件。 - **实体类**...

    oracle-SpringBoot Oracle示例-Samples.zip

    6. **Oracle特定特性**:可能的示例会包含如何使用Oracle特有的功能,如分区表、物化视图、序列、存储过程等。 7. **配置与集成**:示例可能会展示如何在SpringBoot的配置文件中设置Oracle数据库的相关属性,如URL...

    Struts2 Spring3 Hibernate3.3框架整合

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

    hibernate自动增长字段

    Hibernate映射文件中使用`native`策略时无需指定特定的序列名,因为这是由Hibernate根据数据库类型自动选择的: ```xml ``` 这种方式相对简单,但在某些情况下可能不够灵活或高效,特别是当涉及到多个表共享同...

Global site tag (gtag.js) - Google Analytics