Okay now I seem to be able to get the Annotation objects retrieved but I
can't seem to cast them from objects into Annotations...


new dao method wrote:
> 
>       public List<Annotation> getAnnotationsForOsbBaseObjectId(Long osbId)
>       {
>                       log.info("Begin: getAnnotationsForOsbBaseObjectId()");
> //                    List find = getHibernateTemplate().find("From 
> Annotation ann join
> ann.related_OSBObjects as osb where osb.id = :osbId", osbId);
> //                    List <Annotation> list =  find;
> 
> 
>                       String queryString = "From Annotation ann join 
> ann.related_OSBObjects
> as osb where osb.id = :osbId";
> 
>                       List <Annotation> list = 
> getSession().createQuery(queryString)
>                                                       .setLong("osbId", osbId)
>                                                       .list();
> 
>                       if(list.isEmpty())
>                       {
>                               throw new 
> ObjectRetrievalFailureException(Annotation.class,
>                                                                               
>            new String(
>                                                       "Annotations not found 
> for query " + queryString +
>                                                       "with arguments osbId: 
> " + osbId));
> 
>                       }
> 
> 
>                       log.info("Exit: getAnnotationsForOsbBaseObjectId()");
>                       return list;
>       }
> 


test method where the dao dies wrote:
> 
>    public void testGetAnnotationsForOsbBaseObjectId()
>    {
>          testAnnotation = null;
> 
>          List <Annotation> annotationList = null;
>          annotationList = dao.getAnnotationsForOsbBaseObjectId(TEST_VERSE_ID);
> 
>          assertNotNull(annotationList);
>          assertTrue(annotationList.size() > 0);
> 
>           // Dies when casting the object I retireved to an Annotation.
>          Object o = (Annotation) annotationList.iterator().next(); // <-- DIES
> HERE...
>          log.debug(o);
> 
>          //testAnnotation = o;
>          //assertEquals("Verse Sample Annotation 1",
> testAnnotation.getWiki_text());
> 
>    }
> 


Stack Trace wrote:
> 
>     [junit] Testcase:
> testGetAnnotationsForOsbBaseObjectId(com.conciliarpress.dao.AnnotationDaoTest):
> Caused an ERROR
>     [junit] [Ljava.lang.Object;
>     [junit] java.lang.ClassCastException: [Ljava.lang.Object;
>     [junit] at
> com.conciliarpress.dao.AnnotationDaoTest.testGetAnnotationsForOsbBaseObjectId(AnnotationDaoTest.java:78)
>     [junit] at
> org.springframework.test.ConditionalTestCase.runBare(ConditionalTestCase.java:69)
> 

Could this be a proxy? what with the Ljava.lang.Object?


Thank you again, 
      Andrew J. Leer


Michael Horwitz wrote:
> 
> Hmm. It can definitely be done, but not sure the fectch clause is exactly
> what you are after. The fetch clause simply forces a lazy loaded
> collection
> to load when you fetch the parent object. If all you are interested in is
> the collection, then simply query for it?
> 
> Something like:
> 
> From Annotation ann join ann.related_OSBObjects as osb where osb.id =
> :osbId
> 
> Mike.
> 
> On 3/30/07, maskkkk <[EMAIL PROTECTED]> wrote:
>>
>>
>> Hello I am using Appfuse 1.9.4 to build a project:
>>
>> The feat I am trying to attempt here is to pass in the id of an
>> OSBBaseObject,
>> and retrieve all of the Annotations which are associated with it.
>>
>> There is a collection-many-to-many between the OSBBaseObject and
>> Annotation
>> classes.
>>
>> Now I talked to a guy online who told me that it could be done using a
>> FETCH
>> clause in HQL,
>> and thus far this is what I have:
>>
>>
>> what I have so far... wrote:
>> >
>> > ...
>> >       public List<Annotation> getAnnotationsForOsbBaseObjectId(Long
>> osbId)
>> >       {
>> >                       log.info("Begin:
>> getAnnotationsForOsbBaseObjectId()");
>> >
>> >                       //List <Annotation> list
>> =  getHibernateTemplate().find("FROM
>> > Annotation ann WHERE ann. = ?", osbId);
>> >
>> >                       List <Annotation> list
>> =  getHibernateTemplate().find("SELECT ann FROM
>> > Annotation ann FETCH ann.", osbId);
>> >                       select p from People p fetch p.friends
>> >
>> >                       //log.debug("Retrieved " + list.size() + "
>> results");
>> >
>> >                       log.info("Exit:
>> getAnnotationsForOsbBaseObjectId()");
>> >                       return list;
>> >       }
>> > ...
>> >
>>
>> And bellow are the relationships as I have them defined in the back-end
>> of
>> my Appfuse webapp:
>>
>>
>> OSBBaseObject wrote:
>> >
>> > public abstract class OSBBaseObject extends BaseObject
>> > {
>> >       private Long id;
>> >       /**
>> >        * The annotations that are assocated with
>> >        * this OSBBaseObject.
>> >        *
>> >        */
>> >       private Set annotations;
>> >
>> >         ...
>> >
>> >       /**
>> >        *      @hibernate.id
>> >        *              column="ID"
>> >        *              generator-class="hilo"
>> >        *              unsaved-value="null"
>> >        */
>> >       public Long getId(){ return id; }
>> >       public void setId(Long id){     this.id = id;}
>> >
>> >       /**
>> >        * @hibernate.set
>> >        *              table="osbobjects_in_annotation"
>> >          *            cascade="save-update"
>> >          *            inverse="true"
>> >          [EMAIL PROTECTED]
>> >          *            column="fk_annotation"
>> >          *     class="com.conciliarpress.model.Annotation"
>> >          * @hibernate.collection-key
>> >          *    column="fk_osbbaseobject"
>> >          */
>> >       public Set getAnnotations(){ return annotations; }
>> >       public void setAnnotations(Set a){ this.annotations = a; }
>> >       ...
>> > }
>> >
>>
>>
>> Annotation Class wrote:
>> >
>> > public class Annotation
>> > {
>> >       private Long id;
>> >       private Set related_OSBObjects;
>> >
>> >        /**
>> >        *      @hibernate.id
>> >        *              column="ID"
>> >        *              generator-class="hilo"
>> >        *              unsaved-value="null"
>> >        */
>> >       public Long getId() {   return id;      }
>> >       public void setId(Long id) {    this.id = id; }
>> >
>> >    /**
>> >      *        @hibernate.set
>> >      *                table="osbobjects_in_annotation"
>> >      *                cascade="save-update"
>> >      [EMAIL PROTECTED]
>> >      *                column="fk_osbbaseobject"
>> >      *     class="com.conciliarpress.model.OSBBaseObject"
>> >      * @hibernate.collection-key
>> >      *        column="fk_annotation"
>> >      *
>> >      */
>> >       public Set getRelated_OSBObjects() {    return
>> related_OSBObjects;      }
>> >       public void setRelated_OSBObjects(Set related_OSBObjects)
>> > {this.related_OSBObjects = related_OSBObjects;        }
>> >
>> > }
>> >
>>
>> Can this type of relationship be retrieved in HQL?  Or am I required to
>> make
>> use of proxies?
>>
>> Thank you,
>>    Andrew J. Leer
>> --
>> View this message in context:
>> http://www.nabble.com/Retrieving-a-May-to-many-relationship--tf3492039s2369.html#a9752623
>> Sent from the AppFuse - User mailing list archive at Nabble.com.
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Retrieving-a-May-to-many-relationship--tf3492039s2369.html#a9756419
Sent from the AppFuse - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to