Skip to main content

[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


Back to the top