[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] Null attribute classification
|
What is the Java type of siteId?
Do the following queries run successfully?
select p from Poll p where p.owner = ?1
select p from Poll p where p.id = ?1
Can you post the snippet of code you use to obtain and run your query?
-Tom
Carl Hall wrote:
Responses inline...
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
eclipselink-users@xxxxxxxxxxx <mailto:eclipselink-users@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx <mailto:eclipselink-users@xxxxxxxxxxx>
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
------------------------------------------------------------------------
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users