Hibernate 中执行 对Oracle 数据库执行 save 方式是报 序列不存在 的问题?
来源:互联网 发布:unity3d 动态加载 编辑:程序博客网 时间:2024/06/03 20:05
网上查询出现这种问题的结论是 :
oracle 数据库插入数据不能自增,可以创建sequence生成自增序列(关于sequence还不是很了解,先写解决方法,以后在了解补充)
开始的时候,我的 映射是这样的 : 注意ID 处的配置
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.baidu.QBC_or_LocalSQL"> <class name="Department" table="BB_DEPARTMENTS"> <id name="id" type="java.lang.Integer"> <column name="ID" /> <generator class="native" /> </id> <property name="name" type="java.lang.String"> <column name="NAME" /> </property> <set name="emps" table="BB_EMPLOYEES" inverse="true" lazy="true"> <key> <column name="DEPT_ID" /> </key> <one-to-many class="Employee" /> </set> </class> </hibernate-mapping>
我使用<property name="show_sql">true</property>输出sql
发现只是输出了:select hibernate_sequence.nextval from dual这条语句
并没有输出 插入的 sql语句 说明select hibernate_sequence.nextval from dual这条语句在oracle中执行或许出了问题,我把这语句放入plsql中执行,果然出现:ora-02289 序列不存在 错误
上网查询原因得出:没有自增序列
于是我在plsql中给表建立了自增:
create sequence user_deptid(自增名称)
increment by 1
start with 1
nomaxvalue
nominvalue
nocache
映射文件改为:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping package="com.baidu.QBC_or_LocalSQL"> <class name="Department" table="BB_DEPARTMENTS"> <id name="id" type="java.lang.Integer"> <column name="ID" /> <generator class="sequence" > <param name="sequence">user_deptid</param> </generator> </id> <property name="name" type="java.lang.String"> <column name="NAME" /> </property> <set name="emps" table="BB_EMPLOYEES" inverse="true" lazy="true"> <key> <column name="DEPT_ID" /> </key> <one-to-many class="Employee" /> </set> </class> </hibernate-mapping>这样就可以成功的把数据save到oracle数据库中了
0 0
- Hibernate 中执行 对Oracle 数据库执行 save 方式是报 序列不存在 的问题?
- 关于Hibernate save方法执行之后得到的id与数据库中实际存入值的id不一致的问题
- Hibernate执行save方法报错
- hibernate 执行save方法报错
- thinkphp 先create() 然后save() 但是数据库执行报错问题
- Hibernate执行save方法 注意
- 关于hibernate中createQuery执行hql报错的小结
- 关于在执行hibernate3.0的save方法后数据无法添加到数据库的问题
- oracle存储过程中使用execute immediate执行sql报ora-01031权限不足的问题
- oracle中简单的sql执行的表、序列、触发器
- hibernate执行原生态的sql的问题-mysql数据库
- oracle脚本的执行方式
- oracle数据库JOB方式执行任务
- spring+hibernate事务管理-save时未执行
- (1)Oracle数据库总结 这篇文字写的是在[Oracle SQL*Plus]中执行的操作。
- Oracle中定时执行问题
- PHP中执行dql语句返回的result存不存在与是否为空的问题
- Scheduled执行jpa的save方法的问题。
- 用html5-canvas画可以走动的时钟
- Duilib学习笔记《02》—界面布局
- 支付宝的支付流程
- 深入学习java集合:HashMap<K,V>实现
- 隐马尔可夫模型简单介绍
- Hibernate 中执行 对Oracle 数据库执行 save 方式是报 序列不存在 的问题?
- 练习三 Problem M
- C++标准库——random
- win10 edge打不开,解决方案
- 【hibernate进阶】hibernate持久化对象的三种状态
- Weka中文乱码解决方法
- 三个故事
- 第十一周上机实践项目3(2):警察和厨师
- Homography单应性矩阵程序实现