`
不夜的星辰
  • 浏览: 88299 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

hibernate 保存POJO数据到oracle

    博客分类:
  • ssh
阅读更多

使用hibernate框架对pojo数据进行save到数据库时(笔者碰到的问题是在操作oracle数据库),由于某些配置不当会引起一些错误,

如:org.hibernate.exception.SQLGrammarException: could not get next sequence value

 

这是因为数据库表中id作为主键设置自动增长,而pojo模型中的id(如 userid)没有设置产生的找不到序列问题;解决方法:

 

hibernate连接oracle有两种方式,一种是制定sequence的名字 如:
< id name="id" column="ID"> < generator class="sequence"> < param name="sequence">DEPARTMENT_ID_SEQ< /param> < /generator> < /id>   

如果要使用native,则必须创建名为HIBERNATE_SEQUENCE 的sequence
CREATE SEQUENCE HIBERNATE_SEQUENCE MINVALUE 1 MAXVALUE 99999  

  < id name="id" column="ID"> < generator class="native" /> < /id>

 

 

另外如果采用上述的native主键生成策略需创建一个触发器对改序列进行引用(sequence暂无验证),否则可能会报org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update错误:

 

create or replace trigger 触发器名

before insert on 表名

for each row

declare

begin

 select seq_user.nextval

 into:new.主键名 from dual;

end trigger_user;

 

另外产生org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update错误也有可能是插入的数据长度超出数据库该字段设置的长度所致

 

分享到:
评论

相关推荐

    myeclipse中自动生成hibernate的POJO、DAO和hbm.xml文件

    MyEclipse中自动生成Hibernate的POJO、DAO和hbm.xml文件 MyEclipse是一款功能强大且流行的集成开发环境(IDE),它提供了许多实用的功能来帮助开发者快速构建和维护项目。其中,MyEclipse提供了对Hibernate的支持,...

    pojo生成器

    生成器会解析表结构,创建对应的Java类文件,并将它们保存到指定的目录下。生成的这些类可以被应用到ORM框架中,实现对数据库的CRUD(创建、读取、更新、删除)操作。 总结来说,这个“pojo生成器”是一个针对...

    Hibernate逆向工程-oracle示例借鉴.pdf

    你可以根据项目需求选择生成的内容,如映射文件(hbm.xml)、POJO(持久化对象)类以及DAO(数据访问对象)类。 点击“Next”,确认配置无误后,再次点击“Next”直至“Finish”。此时,MyEclipse会自动生成与选定...

    Hibernate自动创建表结构示例--Oracle

    标题"Hibernate自动创建表结构示例--Oracle"表明我们将使用Hibernate在Oracle数据库中自动生成表结构,这是通过Hibernate的`hibernate.hbm2ddl.auto`配置属性实现的。这个属性可以设置为"create"、"update"、...

    MyEclipse中配置Hibernate

    通过上述步骤,我们成功地在MyEclipse中配置了Hibernate与Oracle数据库的连接,并完成了基本的数据表映射。这种配置方式不仅简化了数据库访问的复杂性,还提高了代码的可维护性和扩展性。希望本文能帮助到正在学习和...

    用Hibernate3.1实现XML和数据库的同步

    自3.1版本起,Hibernate引入了XML到数据库映射的功能,允许开发者将XML文档的数据直接映射至数据库表,从而实现XML与数据库之间的同步。这一特性极大地简化了数据管理和转换流程,特别是在处理非结构化或半结构化...

    eclipse插件,根据数据库表自动生成DTO(pojo)插件

    在生成的DTO和POJO类中,注解可以用来标记字段,以便于框架如Hibernate或MyBatis进行ORM(对象关系映射)操作。 `JavaBeanTool_2.0`可能是插件的一个版本号,暗示这个工具已经经过了多次迭代和优化。JavaBean是一种...

    hibernate所需驱动

    5. **实体类和映射文件**:为了将Java类映射到数据库表,我们需要编写实体类(通常是POJO,Plain Old Java Object),并在`hibernate-mapping`标签内定义对应的XML映射文件,描述属性与列的对应关系。 6. **HQL和 ...

    MyEclipe自动生成Pojo、DAO的方式

    对于使用Hibernate框架的开发者来说,MyEclipse提供了自动生成POJO(Plain Old Java Object)类和对应的hbm.xml映射文件的功能,这在处理大量的数据库操作时尤其方便。下面我们将详细探讨如何在MyEclipse中实现这一...

    jsp源码移动ssh项目(struts+spring+hibernate+oracle)

    - **持久化**:将Java对象保存到数据库的过程。 - **会话(Session)**:Hibernate中的核心接口之一,用于执行持久化操作。 - **事务管理**:确保数据库操作的原子性、一致性、隔离性和持久性。 ##### 4. Oracle...

    spring-hibernate.zip

    这允许我们在Spring的环境中利用Hibernate进行数据库操作,同时还能享受到Spring提供的事务管理和其他服务。 4. **配置整合**:整合Spring和Hibernate需要在Spring的配置文件中引入Hibernate的相关库,并配置`...

    hibernate中的相关组件的介绍

    - **方言设置**:Hibernate支持多种数据库类型,如MySQL、Oracle等,通过设置不同的方言(Dialect)可以确保SQL语句的兼容性。 - **缓存策略**:定义了Hibernate如何管理查询结果和实体对象的缓存机制。 - **事务...

    hibernate的详细学习笔记

    **Hibernate** 是一款开源的对象关系映射(Object-Relational Mapping,简称ORM)框架,它允许开发人员将Java对象映射到数据库表中,从而简化了数据访问层的开发工作。 在安装配置Hibernate时,我们通常会经历以下...

    Hibernate Synchronizer2.3.1.rar

    通过集成到Eclipse或IntelliJ IDEA等IDE中,Hibernate Synchronizer能够监控数据库的改变,并自动生成或更新与之对应的Java POJO(Plain Old Java Object)类,极大地提高了开发效率。 在Hibernate Synchronizer ...

    Hibernate 经典总结

    如果要使用 Hibernate 创建一张名为 t_user 的表,包含主键 id、name、age 和 pwd 四个字段,我们需要创建一个对应 Pojo 类(如 User),并确保其属性与表字段一一对应,然后使用 Hibernate API 进行实例化、保存等...

    Java相关课程系列笔记之十四Hibernate学习笔记

    Hibernate基于POJO(Plain Old Java Object)和面向对象的设计原则,遵循“贫血”模型,将数据操作封装在DAO(Data Access Object)中,提供了一种声明式的方式管理数据持久化。 二、Hibernate的基本使用 2.1 ...

    hibernate与各种数据库的连接配置

    Hibernate 是一个 популяр的对象关系映射(ORM)工具,用于将 Java 对象映射到关系数据库中。为了使用 Hibernate,需要配置连接数据库的设置。下面将介绍 Hibernate 与各种数据库的连接配置,包括 MySql、Sql...

    struts+bibernate+oracle

    Hibernate通过配置文件(hibernate.cfg.xml)来定义数据库连接信息,实体类(通常是POJO)对应数据库中的表,实体类的属性对应表中的字段。使用Hibernate,可以实现CRUD(创建、读取、更新、删除)操作,大大简化了...

Global site tag (gtag.js) - Google Analytics