I'm trying with 3.1 beta.. I have (obviously) problems with the classloading. The cayenne "bundle" tries to load my auto-generated classes... Do you have any ideas how to manage this? The "responsible" class is DefaultAdhocObjectFactory class... Should I have to create a sort of class registry? Or are there any better options?
Francesco On Sep 7, 2012, at 4:50 PM, Andrus Adamchik wrote: >> I can't update to cayenne 3.1 (btw.. is it stable? I could not find the >> information on the site, but the branch is marked as STABLE) > > Yes, it is in Beta, meaning complete API freeze and only bugfix related > changes. > >> I downloaded the sources of cayenne 3.0, compiled with maven (from command >> line), then imported the projects into eclispe, but... they are all "red".. >> eclipse can't resolve javax.persistence.. > > I really recommend 3.1. It doesn't have all the JPA baggage of 3.0. > > Andrus > > On Sep 7, 2012, at 4:20 PM, Francesco Romano wrote: > >> I've already seen those pages.. >> So there is nothing "ready".... >> >> Further more.. I can't update to cayenne 3.1 (btw.. is it stable? I could >> not find the information on the site, but the branch is marked as STABLE)... >> >> I downloaded the sources of cayenne 3.0, compiled with maven (from command >> line), then imported the projects into eclispe, but... they are all "red".. >> eclipse can't resolve javax.persistence.. >> >> Any ideas? >> Thank you >> Francesco >> >> On Sep 7, 2012, at 1:11 PM, Andrus Adamchik wrote: >> >>>> So.. the question becomes: how can I integrate Cayenne in an OSGi >>>> Environmnet? >>> >>> >>> I wish I'd get myself into an OSGi project to have some motivation to >>> familiarize myself with OSGi-related issues :) For now, there are various >>> degrees of interest and an intent to help from different folks, but nothing >>> specific as of yet: >>> >>> http://markmail.org/message/n7licqa27qdecfzy >>> http://markmail.org/message/admkhniktnvnfid5 >>> >>> Andrus >>> >>> >>> >>> On Sep 7, 2012, at 10:45 AM, Francesco Romano wrote: >>>> Ok.. I found the problem.. It is not related to Cayenne, but to our >>>> environment. >>>> >>>> So.. the question becomes: how can I integrate Cayenne in an OSGi >>>> Environmnet? >>>> >>>> Francesco >>>> >>>> On Sep 6, 2012, at 5:00 PM, Francesco Romano wrote: >>>> >>>>> Hi everybody. >>>>> >>>>> I have a problem with cayenne. >>>>> I migrated a table from having a PK autogenerated by the db on a field >>>>> ID, to a table without autogenerated pks (now my PK is a multi-column >>>>> table). >>>>> >>>>> The problem is that I have this exception during execution: >>>>> >>>>> [06Sep 16:55:16,714] (CommitObjects@295) WARN KPIServiceImpl - Error >>>>> committing kpiManager.TotalLatencyStat >>>>> org.apache.cayenne.CayenneRuntimeException: [v.3.0 Apr 26 2010 09:59:17] >>>>> Commit Exception >>>>> at >>>>> org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1134) >>>>> at >>>>> org.apache.cayenne.access.DataContext.commitChanges(DataContext.java:1045) >>>>> at kpi.impl.KPIServiceImpl.CommitObjects(KPIServiceImpl.java:285) >>>>> at kpi.impl.KPIServiceImpl.saveObj(KPIServiceImpl.java:2518) >>>>> at impl.KPIServiceImpl.addTotalLatencyStat(KPIServiceImpl.java:989) >>>>> at timertask.JMSMsgStatKPITimerTask.run(JMSMsgStatKPITimerTask.java:47) >>>>> at java.util.TimerThread.mainLoop(Timer.java:512) >>>>> at java.util.TimerThread.run(Timer.java:462) >>>>> Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: >>>>> Table 'kpidb.auto_pk_support' doesn't exist >>>>> at sun.reflect.GeneratedConstructorAccessor143.newInstance(Unknown >>>>> Source) >>>>> at >>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >>>>> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) >>>>> at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) >>>>> at com.mysql.jdbc.Util.getInstance(Util.java:381) >>>>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030) >>>>> at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) >>>>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3515) >>>>> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3447) >>>>> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951) >>>>> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101) >>>>> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548) >>>>> at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2477) >>>>> at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:741) >>>>> at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:587) >>>>> at >>>>> org.apache.cayenne.dba.mysql.MySQLPkGenerator.getLongPrimaryKey(MySQLPkGenerator.java:305) >>>>> at >>>>> org.apache.cayenne.dba.mysql.MySQLPkGenerator.longPkFromDatabase(MySQLPkGenerator.java:81) >>>>> at >>>>> org.apache.cayenne.dba.JdbcPkGenerator.generatePk(JdbcPkGenerator.java:270) >>>>> at >>>>> org.apache.cayenne.access.DataDomainInsertBucket.createPermIds(DataDomainInsertBucket.java:165) >>>>> at >>>>> org.apache.cayenne.access.DataDomainInsertBucket.appendQueriesInternal(DataDomainInsertBucket.java:76) >>>>> at >>>>> org.apache.cayenne.access.DataDomainSyncBucket.appendQueries(DataDomainSyncBucket.java:79) >>>>> at >>>>> org.apache.cayenne.access.DataDomainFlushAction.preprocess(DataDomainFlushAction.java:182) >>>>> at >>>>> org.apache.cayenne.access.DataDomainFlushAction.flush(DataDomainFlushAction.java:134) >>>>> at org.apache.cayenne.access.DataDomain.onSyncFlush(DataDomain.java:824) >>>>> at org.apache.cayenne.access.DataDomain$2.transform(DataDomain.java:791) >>>>> at >>>>> org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java:850) >>>>> at org.apache.cayenne.access.DataDomain.onSync(DataDomain.java:788) >>>>> at >>>>> org.apache.cayenne.access.DataContext.flushToParent(DataContext.java:1106) >>>>> ... 7 more >>>>> >>>>> But.. date is written into db!! >>>>> This is the db-entity and obj-entity for the table >>>>> >>>>> <db-entity name="TotalLatencyStat"> >>>>> <db-attribute name="DataType" type="INTEGER" >>>>> isPrimaryKey="true" isMandatory="true"/> >>>>> <db-attribute name="LatencyMax" type="INTEGER" >>>>> isMandatory="true"/> >>>>> <db-attribute name="LatencyMin" type="INTEGER" >>>>> isMandatory="true"/> >>>>> <db-attribute name="LatencySum" type="INTEGER" >>>>> isMandatory="true"/> >>>>> <db-attribute name="MacAddress" type="VARBINARY" >>>>> isPrimaryKey="true" isMandatory="true" length="128"/> >>>>> <db-attribute name="MsgNumber" type="INTEGER" >>>>> isMandatory="true"/> >>>>> <db-attribute name="NetworkID" type="INTEGER" >>>>> isPrimaryKey="true" isMandatory="true"/> >>>>> <db-attribute name="ServiceType" type="INTEGER" >>>>> isPrimaryKey="true" isMandatory="true"/> >>>>> <db-attribute name="Timestamp" type="BIGINT" >>>>> isPrimaryKey="true" isMandatory="true"/> >>>>> </db-entity> >>>>> >>>>> <obj-entity name="TotalLatencyStat" >>>>> className="com.abodata.plat1.kpiManager.TotalLatencyStat" >>>>> lock-type="optimistic" dbEntityName="TotalLatencyStat"> >>>>> <obj-attribute name="dataType" type="int" >>>>> db-attribute-path="DataType"/> >>>>> <obj-attribute name="latencyMax" type="int" >>>>> db-attribute-path="LatencyMax"/> >>>>> <obj-attribute name="latencyMin" type="int" >>>>> db-attribute-path="LatencyMin"/> >>>>> <obj-attribute name="latencySum" type="int" >>>>> db-attribute-path="LatencySum"/> >>>>> <obj-attribute name="macAddress" type="byte[]" >>>>> db-attribute-path="MacAddress"/> >>>>> <obj-attribute name="msgNumber" type="int" >>>>> db-attribute-path="MsgNumber"/> >>>>> <obj-attribute name="networkID" type="int" >>>>> db-attribute-path="NetworkID"/> >>>>> <obj-attribute name="serviceType" type="int" >>>>> db-attribute-path="ServiceType"/> >>>>> <obj-attribute name="timestamp" type="long" >>>>> db-attribute-path="Timestamp"/> >>>>> </obj-entity> >>>>> >>>>> I don't understand the exception above! >>>>> I also tried to put a breakpoint in the source code of cayenne, in >>>>> particular in BatchAction.runAsIndividualQueries. >>>>> generatesKeys is false. I also put a breakpoint inside the then-block of >>>>> if (generatesKeys) { >>>>> processGeneratedKeys(statement, delegate); >>>>> } >>>>> and it is never fired! >>>>> >>>>> I add that I use Cayenne 3.0 >>>>> >>>>> Thanks >>>>> >>>>> Francesco Romano >>>>> >>>>> >>>> >>>> >>> >>> >> >> > >
