2011-11-18 10 views
6

मैं संबंध में समस्या है, नहीं मिला अनुक्रम जब मैं 3.5 से 4.0.0.RC6 को हाइबरनेट उन्नयन:ORA-02,289: अनुक्रम मौजूद नहीं है जब उन्नयन हाइबरनेट 3 हाइबरनेट करने के लिए 4

at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:703) [hibernate-core-4.0.0.CR6.jar:4.0.0.CR6] 
at org.hibernate.internal.SessionImpl.persist(SessionImpl.java:707) [hibernate-core-4.0.0.CR6.jar:4.0.0.CR6] 
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:847) [hibernate-entitymana 
ger-4.0.0.CR6.jar:4.0.0.CR6] 
... 159 more 
Caused by: java.sql.SQLSyntaxErrorException: ORA-02289: sequence does not exist 

at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91) 
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133) 
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455) 
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413) 
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034) 
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194) 
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:791) 
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:866) 
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1186) 
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3387) 
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3431) 

किसी को भी पता है कि ठीक करना? कृपया मुझे बताओ। मैं Oracle10gDialect का उपयोग कर रहा हूं और अपने स्वयं के अनुक्रम जेनरेटर का उपयोग कर getNativeIdentifierGeneratorClass() फ़ंक्शन को ओवरराइड कर रहा हूं। यह हाइबरनेट 3.5 पर काम किया लेकिन अपवाद है जब मैं हाइबरनेट को 4.0.0.RC6

नीचे मेरी TableNameSequenceGenerator वर्ग है उन्नयन: जब मैं हाइबरनेट 4 का उपयोग करके डिबगिंग कर

public class TableNameSequenceGenerator extends SequenceGenerator { 

    public void configure(Type type, Properties params, Dialect dialect) throws MappingException { 
     if(params.getProperty(SEQUENCE) == null || params.getProperty(SEQUENCE).length() == 0) { 
      String tableName = params.getProperty(PersistentIdentifierGenerator.TABLE); 
      if(tableName != null) { 
       String seqName = tableName + "_SEQ"; 
       params.setProperty(SEQUENCE, seqName);    
      } 
     } 
     super.configure(type, params, dialect); 
    } 
} 

, TableName REVINFO केवल वापसी (यह हाइबरनेट 3 में काम करता है)

धन्यवाद Hiep

+0

अपने SequenceGenerator क्या करता है का उपयोग करें मिल गया? – ryanbraganza

उत्तर

0

मैं इस सवाल का जवाब मिल गया।

सभी वर्गों के लिए आम आईडी जनरेटर के लिए, हम

@Id 
@GeneratedValue(generator="GENERATOR_COMMON") 
@GenericGenerator(name="GENERATOR_COMMON",strategy="point.to.table.generator") 

आशा इस मदद कोई है जो मेरे जैसे एक ही मुद्दा है का उपयोग करना चाहिए।

0

यहां तक ​​कि मैं एक ही मुद्दा है, निम्नलिखित लाइनों

@GenericGenerator(name = "increment", strategy = "increment") 
@GeneratedValue(generator = "increment") 
संबंधित मुद्दे