Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Null attribute classification

Responses inline...

On Thu, Oct 23, 2008 at 14:21, Tom Ware <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
https://dev.eclipse.org/mailman/listinfo/eclipselink-users
_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users


Back to the top