2012-09-21 26 views
0

我有一個EJB 3.0的客戶端和服務器與JBoss AS 7.1.1。我試圖堅持實體的名單我連接到數據庫,但我不斷收到此錯誤:SequenceGenerator錯誤:不是有效的函數或過程名

java.sql.SQLException: ORA-06576: not a valid function or procedure name 

我有一個序列發生器在我的Oracle數據庫稱爲SEQ_ID。我跟着這個教程中設置它:http://www.developerscrappad.com/408/java/java-ee/ejb3-jpa-3-ways-of-generating-primary-key-through-generatedvalue/

下面是一個使用註釋在上面的教程上的主鍵我的實體bean:http://pastebin.com/QJ6W5VLG

這裏是我的功能仍然存在實體的名單:

public void persistSchemas(List schemasList){ 
    String strDelete = " DELETE FROM Schemas s "; 
    Query query = em.createQuery(strDelete); 
    query.executeUpdate(); 

    for(Schemas schema : (List<Schemas>)schemasList){ 
     em.persist(schema); 
    } 
} 

這裏是服務器上的錯誤的完整堆棧跟蹤: http://pastebin.com/rmURYdRD

該錯誤只顯示了,當我試圖堅持的實體nd他們有兩個註釋@SequenceGenerator和@GeneratedValue。所以這絕對是順序上的事情。這裏有什麼問題?

+0

什麼是由Hibernate執行的SQL查詢? –

回答

2

原來,HQL話是錯誤的。我需要將其更改爲:

<property name="hibernate.dialect" value="org.hibernate.dialect.Oracle8iDialect"/> 

在我的服務器的META-INF文件夾的persistence.xml中。

相關問題