我正在运行以下代码,当我尝试使用 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 更多