当我尝试使用Cayenne作为我的ORM提交更改时,我正在运行以下代码错误。代码粘贴在下面,并在context.commitChanges();行中输出错误。输出消息粘贴在代码下方。任何有关解决这个问题的帮助都将不胜感激。
import org.apache.cayenne.access.DataContext; import java.util.*; import com.jared.*; public class Main { public static void main(String[] args) { DataContext context = DataContext.createDataContext(); Stocks 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(new Date()); context.commitChanges(); System.out.println("Done with the database"); } }
Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate startedLoading INFO: started configuration loading. Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataDomain INFO: loaded domain: stocks Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate loadDataMap INFO: loaded . Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode INFO: loading . Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode INFO: using factory: org.apache.cayenne.conf.DriverDataSourceFactory Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.DriverDataSourceFactory load INFO: loading driver information from 'stocksNode.driver.xml'. Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.DriverDataSourceFactory$DriverHandler init INFO: loading driver org.hsqldb.jdbcDriver Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.DriverDataSourceFactory$LoginHandler init INFO: loading user name and password. Nov 20, 2008 11:20:37 PM org.apache.cayenne.access.QueryLogger logPoolCreated INFO: Created connection pool: jdbc:hsqldb:file:/hsqldb/data/stocks Driver class: org.hsqldb.jdbcDriver Min. connections in the pool: 1 Max. connections in the pool: 1 Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate shouldLoadDataNode INFO: loaded datasource. Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate initAdapter INFO: no adapter set, using automatic adapter. Nov 20, 2008 11:20:37 PM org.apache.cayenne.conf.RuntimeLoadDelegate finishedLoading INFO: finished configuration loading in 203 ms. Exception in thread "main" org.apache.cayenne.CayenneRuntimeException: [v.3.0M4 May 18 2008 16:32:02] Commit Exception at org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1192) at org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1066) at Main.main(Main.java:24) Caused by: java.lang.NullPointerException at org.apache.cayenne.access.DataDomainInsertBucket.createPermIds(DataDomainInsertBucket.java:101) at org.apache.cayenne.access.DataDomainInsertBucket.appendQueriesInternal(DataDomainInsertBucket.java:76) at org.apache.cayenne.access.DataDomainSyncBucket.appendQueries(DataDomainSyncBucket.java:80) at org.apache.cayenne.access.DataDomainFlushAction.preprocess(DataDomainFlushAction.java:183) at org.apache.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:135) at org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:821) at org.apache.cayenne.access.DataDomain$2.transform(DataDomain.java:788) at org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:847) at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:785) at org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1164) ... 2 more
答案 0 :(得分:2)
用户名,密码?
ClientConnection连接=新 HessianConnection( “http://localhost:8080/cayenne-service”, “cayenne-user”,“secret”,
空);