Hibernate ORA-02289: 序列不存在1

Hibernate ORA-02289: 序列不存在

转自http://www.cnblogs.com/zhaogd/p/5215242.html


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

org.hibernate.exception.SQLGrammarException: could not extract ResultSet

    at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:80)

    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49)

    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)

    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)

    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:91)

    at org.hibernate.id.SequenceGenerator.generateHolder(SequenceGenerator.java:122)

    at org.hibernate.id.SequenceGenerator.generate(SequenceGenerator.java:115)

    at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:118)

    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:209)

    at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:55)

    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:194)

    at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:49)

    at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:90)

    at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:715)

    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:707)

    at org.hibernate.internal.SessionImpl.save(SessionImpl.java:702)

    at com.zhaogd.myapplication.test.Test.main(Test.java:39)

Caused by: java.sql.SQLSyntaxErrorException: ORA-02289: 序列不存在

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)

    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)

    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)

    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)

    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)

    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)

    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)

    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)

    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)

    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1296)

    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)

    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3657)

    at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1495)

    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82)

    ... 12 more

因为Hibernate中主键设为自增的,hibernate中的实体类与数据库的映射文件中配置数据库 的Sequence

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>

    <class name="com.zhaogd.myapplication.model.SysUser" table="SYS_USER">
        <id name="id">
            <!--主键生产策略 -->
            <generator class="native">
              <!--SEQ_SYS_USER 为orcale中创建的sequence-->
               <param name="sequence">SEQ_SYS_USER</param>
            </generator>
        </id>
        <!--实体类属性-->
        <property name="username" />
        <property name="password" />
    </class>

</hibernate-mapping>

至于orcale中如何创建sequence

-- Create sequence
create sequence SEQ_SYS_USER
minvalue 1
maxvalue 999999999999999999
start with 21
increment by 1
cache 20;
时间: 2024-07-30 07:00:16

Hibernate ORA-02289: 序列不存在1的相关文章

Hibernate 配置文件

映射文件(.hbm.xml) 1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE hibernate-mapping PUBLIC 3 "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 5 &

Hibernate -- xxx.hbm.xml ORM元数据 表对象关系映射文件

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- ORM元数据 表对象关系映射文件 p

hibernate学习(1)——helloworld

1. 框架体系结构 2. hibernate入门 2.1 ORM框架 Hibernate是一个数据持久化层的ORM框架. Object:对象,java对象,此处特指JavaBean Relational:关系,二维表,数据库中的表. Mapping:映射|映射元数据,对象中属性,与表的字段,存在对应关系. 2.2   什么是hibernate 1) Hibernate是轻量级JavaEE应用的持久层解决方案,是一个关系数据库ORM框架 2)ORM 就是通过将Java对象映射到数据库表,通过操作J

hibernate.cfg.xml配置(Oracle+c3p0)

说明:数据库:Oracle10g:连接池:c3p0 结构: 一.配置hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforg

Oracle序列和主键映射

前言 每张表都有主键,可分别简单主键和组合主键,简单主键为表中的一列,组合主键为表中的几列.主键的生成策略有许多种,其中,序列是oracle常见的主键生成策略之一.本文主要讲解JPA映射主键的技术细节.其中,主键生成策略是oracle序列,JPA实现是Hibernate. oracle序列 创建序列 drop sequence testsequence; Create sequence testsequence Increment by 1 Start with 1 NOMAXVALUE NOM

hibernate——第一次简单的使用

提前有jdk.mysql.hibernate必须jar包.mysql连接jar包 mysql中的表 Java中的bean,User类 1 package com.xiaostudy.demo; 2 3 public class User { 4 5 private int id; 6 private String username; 7 private String password; 8 9 public int getId() { 10 return id; 11 } 12 13 publi

hibernate的一对多配置

首先是"一"的 Customer.java 1 package com.xiaostudy.domain; 2 3 import java.util.HashSet; 4 import java.util.Set; 5 6 /** 7 * 一对多中的"一"的bean 8 * 9 * @author xiaostudy 10 * 11 */ 12 public class Customer { 13 // id 14 private Integer id; 15 //

Oracle数据库语句大全

转自:http://blog.sina.com.cn/s/blog_b5d14e2a0101c56z.html ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约束中指定的条件是否得到了满足. UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的. PRIMARY KEY (主键)--用来唯一的标识出表的每

Oracle 数据库语句大全

Oracle数据库语句大全 ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约束中指定的条件是否得到了满足. UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的. PRIMARY KEY (主键)--用来唯一的标识出表的每一行,并且防止出现NULL值,一个表只能有一个主键约束. POREIGN KEY (

oracle sql语句大全

ORACLE支持五种类型的完整性约束 NOT NULL (非空)--防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值. CHECK (检查)--检查在约束中指定的条件是否得到了满足. UNIQUE (唯一)--保证在指定的列中没有重复值.在该表中每一个值或者每一组值都将是唯一的. PRIMARY KEY (主键)--用来唯一的标识出表的每一行,并且防止出现NULL值,一个表只能有一个主键约束. POREIGN KEY (外部键)--通过使用公共列在