On Thu, Oct 23, 2008 at 14:21, Tom Ware <
tom.ware@xxxxxxxxxx <mailto:
tom.ware@xxxxxxxxxx>> wrote:
How does you persistence.xml look?
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" 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">
<persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<mapping-file>org/sakaiproject/poll/jpa/Option.orm.xml</mapping-file>
<mapping-file>org/sakaiproject/poll/jpa/Poll.orm.xml</mapping-file>
<mapping-file>org/sakaiproject/poll/jpa/Vote.orm.xml</mapping-file>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="eclipselink.jdbc.write-connections.min" value="1" />
<property name="eclipselink.jdbc.read-connections.min" value="1" />
<property name="eclipselink.logging.level" value="FINE" />
<property name="eclipselink.logging.timestamp" value="false" />
<property name="eclipselink.logging.session" value="false" />
<property name="eclipselink.logging.thread" value="false" />
<property name="eclipselink.logging.exceptions" value="false" />
<property name="eclipselink.ddl-generation" value="drop-and-create-tables" />
<property name="eclipselink.ddl-generation.output-mode" value="both" />
</properties>
</persistence-unit>
</persistence>
What does your deployment archive look like? Where is the
persistence.xml? Where is the orm.xml?
My persistence file is located as noted above in a jar in shared/lib of Tomcat along with persistence-api-1.0.jar and eclipselink-1.0.1.jar. I'm pretty sure my orm.xml files are loading because I had lots of validation errors from EclipseLink about field names not existing in the class (I'm converting from hibernate and not all getter names == field names). After I got through the field name mismatches, I arrived at this point. I also see notes in the log like "[EL Config]: The access type for the persistent class [class org.sakaiproject.poll.model.Poll] is set to PROPERTY."
I use Spring to create my EntityManager with the following bean:
<bean id="org.sakaiproject.springframework.orm.jpa.EntityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="javax.sql.DataSource" />
<property name="jpaVendorAdapter" ref="org.sakaiproject.springframework.orm.jpa.vendor.JpaVendorAdapter" />
<property name="loadTimeWeaver" ref="org.sakaiproject.springframework.instrument.classloading.LoadTimeWeaver" />
<property name="persistenceXmlLocation" value="classpath:/org/sakaiproject/poll/jpa/persistence.xml" />
</bean>
Carl Hall wrote:
I get the following error when trying to load up my orm.xml files:
Caused by: Exception [EclipseLink-8030] (Eclipse Persistence
Services - 1.0.1 (Build 20080905)):
org.eclipse.persistence.exceptions.JPQLException
Exception Description: Error compiling the query [select p from
Poll p where p.siteId = ?1 order by p.creationDate desc], line
1, column 29: unknown state or association field [siteId] of
class [org.sakaiproject.poll.model.Poll].
at
org.eclipse.persistence.exceptions.JPQLException.unknownAttribute(JPQLException.java:450)
at
org.eclipse.persistence.internal.jpa.parsing.DotNode.validate(DotNode.java:77)
at
org.eclipse.persistence.internal.jpa.parsing.Node.validate(Node.java:91)
at
org.eclipse.persistence.internal.jpa.parsing.BinaryOperatorNode.validate(BinaryOperatorNode.java:34)
at
org.eclipse.persistence.internal.jpa.parsing.EqualsNode.validate(EqualsNode.java:41)
at
org.eclipse.persistence.internal.jpa.parsing.WhereNode.validate(WhereNode.java:34)
<snip/>
siteId is in my mapping definition for Poll (see below) and I
don't get any errors when starting up the application just when
I try to call the query noted above. I've walked the code down
to the point where TypeHelperImpl.getType(DatabaseMapping)
eventually has "type = mapping.getAttributeClassification()"
which leaves type as null. What can I do to get this type to
not be null?
Part of Poll.orm.xml:
<entity metadata-complete="true" name="Poll"
class="org.sakaiproject.poll.model.Poll">
<table name="POLL_POLL"/>
<attributes>
<id name="id">
<column name="POLL_ID"/>
<generated-value strategy="SEQUENCE"
generator="POLL_POLL_ID_SEQ"/>
<sequence-generator name="POLL_POLL_ID_SEQ"
sequence-name="POLL_POLL_ID_SEQ"/>
</id>
<basic name="owner">
<column name="POLL_OWNER" nullable="false"/>
</basic>
<basic name="siteId">
<column name="POLL_SITE_ID" nullable="false"/>
</basic>
</attributes>
</entity>
------------------------------------------------------------------------
_______________________________________________
eclipselink-users mailing list