0

複数の Grails 2.2.3 アプリケーションで使用するプラグイン用のいくつかのドメイン クラスを作成するために GORM を使用しています。何らかの理由で、Getter を Student ドメイン クラスに追加すると、更新するのに十分な権限がないことを示す BatchUpdateException が発生します。

編集: Oracle 11g データベース用に ojdbc6-11.2.0.1.0 ドライバーを使用していることに注意してください。

これが私の学生クラスです:

class Student {

    String sid
    String firstName
    String lastName
    String middleInitial
    String email
    String ssn

    static mapping = {
        // Mappings and such
    }
}

この Getter を追加して、データベースから受け取る中間の初期値が null である可能性がある場合に「サニタイズ」します。

String getMiddleInitial() {
    return this.middleInitial ?: ""
}

その行を追加した後、/$app_name/student/listURL に移動すると、次のエラー/スタック トレースが表示されます。

Error 500: Internal Server Error

URI
/appname/employee/list
Class
java.sql.BatchUpdateException
Message
ORA-01031: insufficient privileges
Trace

   Line | Method
->> 895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   918 | run     in     ''
^   680 | run . . in java.lang.Thread

Caused by SQLGrammarException: Could not execute JDBC batch update
->> 895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   918 | run     in     ''
^   680 | run . . in java.lang.Thread

Caused by BatchUpdateException: ORA-01031: insufficient privileges

->> 10070 | executeBatch in oracle.jdbc.driver.OraclePreparedStatement
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   213 | executeBatch in oracle.jdbc.driver.OracleStatementWrapper
|   297 | executeBatch in org.apache.commons.dbcp.DelegatingStatement
|   895 | runTask in java.util.concurrent.ThreadPoolExecutor$Worker
|   918 | run . . in     ''
^   680 | run     in java.lang.Thread

そのゲッターを削除した後、データベース内のすべての学生のリストは問題なく機能します。オブジェクトをデータベースに更新または保存しようとしているわけではないので、これは私には意味がありません。誰が何が起こっているのか、どうすれば修正できるのか説明できますか?

4

2 に答える 2

1

dbCreateに設定したかどうかを確認しますupdateか?createDataSource.groovy

存在する場合は、そのエントリを削除またはコメントアウトします。

//dbCreate = 'update' //or use as below
dbCreate = 'none'
于 2013-07-15T17:52:38.673 に答える