1

我正在运行以下代码,当我尝试使用 Cayenne 作为我的 ORM 提交我的更改时出错。代码粘贴在下面,并在 context.commitChanges(); 行上显示错误。输出消息粘贴在代码下方。任何有关解决此问题的帮助将不胜感激。

导入 org.apache.cayenne.access.DataContext;
导入 java.util.*;

导入 com.jared.*;
公共类主要{

    公共静态无效主要(字符串[]参数){
        数据上下文上下文 = DataContext.createDataContext();
        股票 theStock=(Stocks) 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.setShortratio(1.1);
theStock.setSymbol("^SP%");
theStock.setVolume(28193);
theStock.setLasttradedate(新日期());
    context.commitChanges();
    System.out.println("完成数据库");
    }
}
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.conf.RuntimeLoadDelegate 开始加载
INFO:开始配置加载。
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataDomain
信息:加载域:股票
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.conf.RuntimeLoadDelegate loadDataMap
信息:已加载。
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode
信息:加载。
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode
信息:使用工厂:org.apache.cayenne.conf.DriverDataSourceFactory
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.conf.DriverDataSourceFactory 加载
信息:从“stocksNode.driver.xml”加载驱动程序信息。
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.conf.DriverDataSourceFactory$DriverHandler 初始化
INFO:加载驱动程序 org.hsqldb.jdbcDriver
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.conf.DriverDataSourceFactory$LoginHandler 初始化
INFO:加载用户名和密码。
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.access.QueryLogger logPoolCreated
信息:创建的连接池:jdbc:hsqldb:file:/hsqldb/data/stocks
    驱动类:org.hsqldb.jdbcDriver
    分钟。池中的连接数:1
    最大限度。池中的连接数:1
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode
INFO:加载的数据源。
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.conf.RuntimeLoadDelegate initAdapter
INFO:没有设置适配器,使用自动适配器。
2008 年 11 月 20 日晚上 11:20:37 org.apache.cayenne.conf.RuntimeLoadDelegate finishedLoading
INFO:在 203 毫秒内完成配置加载。
线程“主”org.apache.cayenne.CayenneRuntimeException 中的异常:[v.3.0M4 May 18 2008 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 回答