To ensure that the agent discovers all classes on startup, pass 'jpa-
eager-load' parameter to the agent:
-javaagent:/path/cayenne-agent-3.0M3.jar=jpa-eager-load
This makes startup slower, but all the entity classes will be
guaranteed enhanced. This is missing from the docs, let me add it now.
Andrus
On Mar 14, 2008, at 4:45 PM, Frank Schwarz wrote:
Hi Andrus,
the complete trace looks like this:
*** CayenneAgent starting...
14.03.2008 10:04:41 org.apache.cayenne.jpa.Provider
createEntityManagerFactory
INFO: Extra PersistenceUnitInfo properties: {}
14.03.2008 10:04:42
org.apache.cayenne.jpa.instrument.InstrumentingUnit addTransformer
INFO: *** Adding transformer:
[EMAIL PROTECTED]
14.03.2008 10:04:42 org.apache.cayenne.access.QueryLogger
logPoolCreated
INFO: Created connection pool: jdbc:h2:tcp://localhost:9092/sample
Driver class: org.h2.Driver
Min. connections in the pool: 1
Max. connections in the pool: 5
*** insert ***
14.03.2008 10:04:42 org.apache.cayenne.access.QueryLogger
logBeginTransaction
INFO: --- transaction started.
*** finished ***
Exception in thread "main" java.lang.IllegalArgumentException:
entity must be Persistent: oopex.cayenne3.jpax.usecases.model.Person
at
org
.apache
.cayenne
.jpa
.TypeCheckingEntityManager
.checkEntityType(TypeCheckingEntityManager.java:64)
at
org
.apache
.cayenne
.jpa
.TypeCheckingEntityManager.persist(TypeCheckingEntityManager.java:150)
at oopex.cayenne3.jpax.usecases.HalloWorldMain.insert(Unknown
Source)
at oopex.cayenne3.jpax.usecases.HalloWorldMain.main(Unknown
Source)
Java Result: 1
If you like, I can provide you the sample.
Regards,
Frank
Andrus Adamchik schrieb:
Hi Frank,
is the application started with cayenne-agent?
Andrus
On Mar 14, 2008, at 11:12 AM, Frank Schwarz wrote:
Hi,
is it possible to declare mappings in a JPA conform orm.xml file
with Cayenne3M3. Unfortunately, I have not been successful so far.
---%<--- META-INF/persistence.xml ----
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd
" version="1.0">
<persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
<provider>org.apache.cayenne.jpa.Provider</provider>
<mapping-file>META-INF/orm.xml</mapping-file>
<properties>
...
</properties>
</persistence-unit>
</persistence>
---%<--- META-INF/orm.xml ----
<?xml version="1.0"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/
orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd
" version="1.0">
<entity class="oopex.cayenne3.jpax.usecases.model.Person"
name="Person" access="FIELD">
<table name="PERSON" />
<attributes>
<id name="id">
<generated-value strategy="SEQUENCE" />
</id>
</attributes>
</entity>
</entity-mappings>
The error message is:
Exception in thread "main" java.lang.IllegalArgumentException:
entity must be Persistent: oopex.cayenne3.jpax.usecases.model.Person
at
org
.apache
.cayenne
.jpa
.TypeCheckingEntityManager
.checkEntityType(TypeCheckingEntityManager.java:64)
at
org
.apache
.cayenne
.jpa
.TypeCheckingEntityManager.persist(TypeCheckingEntityManager.java:
150)
at oopex.cayenne3.jpax.usecases.HalloWorldMain.insert(Unknown
Source)
at oopex.cayenne3.jpax.usecases.HalloWorldMain.main(Unknown
Source)
Kind regards,
Frank