1

Cayenne を ORM として使用して変更をコミットしようとすると、エラーが発生する次のコードを実行しています。コードは以下に貼り付けられ、context.commitChanges(); 行でエラーが発生します。出力メッセージはコードの下に貼り付けられます。これを理解するための助けをいただければ幸いです。

org.apache.cayenne.access.DataContext をインポートします。
import java.util.*;

com.jared.* をインポートします。
パブリック クラス メイン {

    public static void main(String[] args) {
        DataContext コンテキスト = DataContext.createDataContext();
        株式 theStock=(株式) context.createAndRegisterNewObject(Stocks.class);
theStock.setAsk(3.4);
theStock.setAvgdailyvolume(323849);
theStock .setBid(5.29);
theStock.setChange(-1.22);
theStock.setDayhigh(9.21);
theStock.setDaylow(2.11);
theStock.setLasttradeprice(5.11);
theStock.setLasttradesize(3827);
theStock.setOpen(6.21);
theStock.setPriorclose(4.21);
theStock.setShortatio(1.1);
theStock.setSymbol("^SP%");
theStock.setVolume(28193);
theStock.setLasttradedate(新しい日付());
    context.commitChanges();
    System.out.println("データベースの処理を完了");
    }
}
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate startedLoading
情報: 構成の読み込みを開始しました。
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataDomain
情報: ロードされたドメイン: 株式
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate loadDataMap
情報: ロードされました。
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode
情報: を読み込んでいます。
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode
情報: ファクトリを使用: org.apache.cayenne.conf.DriverDataSourceFactory
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.conf.DriverDataSourceFactory ロード
情報: 「stocksNode.driver.xml」からドライバー情報を読み込んでいます。
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.conf.DriverDataSourceFactory$DriverHandler init
情報: ドライバー org.hsqldb.jdbcDriver をロードしています
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.conf.DriverDataSourceFactory$LoginHandler init
情報: ユーザー名とパスワードを読み込んでいます。
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.access.QueryLogger logPoolCreated
情報: 接続プールを作成しました: jdbc:hsqldb:file:/hsqldb/data/stocks
    ドライバークラス: org.hsqldb.jdbcDriver
    最小。プール内の接続: 1
    最大。プール内の接続: 1
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode
情報: データソースがロードされました。
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate initAdapter
情報: アダプターが設定されていません。自動アダプターを使用しています。
2008 年 11 月 20 日 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate
情報: 203 ミリ秒で構成の読み込みが完了しました。
スレッド「メイン」での例外 org.apache.cayenne.CayenneRuntimeException: [v.3.0M4 2008 年 5 月 18 日 16:32:02] コミット例外
    org.apache.cayenne.access.DataContext.flushToParent (DataContext.java:1192) で
    org.apache.cayenne.access.DataContext.commitChanges (DataContext.java:1066) で
    Main.main(Main.java:24) で
原因: java.lang.NullPointerException
    org.apache.cayenne.access.DataDomainInsertBucket.createPermIds (DataDomainInsertBucket.java:101) で
    org.apache.cayenne.access.DataDomainInsertBucket.appendQueriesInternal (DataDomainInsertBucket.java:76) で
    org.apache.cayenne.access.DataDomainSyncBucket.appendQueries (DataDomainSyncBucket.java:80) で
    org.apache.cayenne.access.DataDomainFlushAction.preprocess (DataDomainFlushAction.java:183) で
    org.apache.cayenne.access.DataDomainFlushAction.flush (DataDomainFlushAction.java:135) で
    org.apache.cayenne.access.DataDomain.onSyncFlush (DataDomain.java:821) で
    org.apache.cayenne.access.DataDomain$2.transform (DataDomain.java:788) で
    org.apache.cayenne.access.DataDomain.runInTransaction (DataDomain.java:847) で
    org.apache.cayenne.access.DataDomain.onSync (DataDomain.java:785) で
    org.apache.cayenne.access.DataContext.flushToParent (DataContext.java:1164) で
    ... 2以上
4

1 に答える 1

2

ユーザー名パスワード?

ClientConnection connection = new HessianConnection(" http://localhost:8080/cayenne-service ", "cayenne-user", "secret",
null);

于 2008-11-22T07:31:56.867 に答える