Following is my code and my repository cut. I am still receiving no results
and my database has all the data in the tables.


--- method to get Category and LinkSectionList ---

public static Collection linkSectionList(int categoryId) {

                //Vector linkSectionList = new Vector();
                Collection result = null;
            Criteria criteria = new Criteria();
                PersistenceBroker broker = null;

                try {

                        broker =
                                PersistenceBrokerFactory.defaultPersistenceBroker();

                        broker.clearCache();

                        criteria.addEqualTo("id", String.valueOf(categoryId));

                        Query query =
                                new QueryByCriteria(
                                        Category.class,
                                        criteria);

                        Category category= (Category)broker.getObjectByQuery(query);

                        result = category.getLinkSectionList();


                } catch (PBFactoryException ex) {
                        logger.error(ex.getMessage(), ex.fillInStackTrace());

                } finally {

                        if (broker != null)
                                broker.close();

                }

                return result;
        }

--- model bean ---
/*
 * Insert.java
 *
 * Created on September 17, 2002, 8:18 AM
 */

package ws.phase.content.model;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.collections.ListUtils;
import ws.phase.core.collections.GenericFactory;
import ws.phase.core.db.DBBase;
/**
 *
 * @author  Administrator
 */
public class Category extends DBBase implements java.io.Serializable {

        private String name;
        private String description;

        private List linkSectionList;

        private boolean selected;

        /** Creates new Insert */
        public Category() {
                linkSectionList =
                        ListUtils.lazyList(
                                new ArrayList(),
                                new 
GenericFactory("ws.phase.content.model.LinkSection"));
        }

        /** Getter for property name.
         * @return Value of property name.
         *
         */
        public java.lang.String getName() {
                return name;
        }

        /** Setter for property name.
         * @param name New value of property name.
         *
         */
        public void setName(java.lang.String name) {
                this.name = name;
        }

        /** Getter for property description.
         * @return Value of property description.
         *
         */
        public java.lang.String getDescription() {
                return description;
        }

        /** Setter for property description.
         * @param description New value of property description.
         *
         */
        public void setDescription(java.lang.String description) {
                this.description = description;
        }

        /** Getter for property selected.
         * @return Value of property selected.
         *
         */
        public boolean isSelected() {
                return selected;
        }

        /** Setter for property selected.
         * @param selected New value of property selected.
         *
         */
        public void setSelected(boolean selected) {
                this.selected = selected;
        }

        /**
         * Returns the linkSectionList.
         * @return List
         */
        public List getLinkSectionList() {
                return linkSectionList;
        }

        /**
         * Sets the linkSectionList.
         * @param linkSectionList The linkSectionList to set
         */
        public void setLinkSectionList(List linkSectionList) {
                linkSectionList =
                        ListUtils.lazyList(
                                linkSectionList,
                                new 
GenericFactory("ws.phase.content.model.LinkSection"));
        }

}

--- repository.xml section ---

<collection-descriptor
         name="linkSectionList"
         element-class-ref="ws.phase.content.model.LinkSection"
         auto-retrieve="true"
         auto-update="true"
         indirection-table="PH_CATEGORY_LINKSECTION"
      >
         <fk-pointing-to-this-class column="CATEGORY_ID"/>
         <fk-pointing-to-element-class column="LINKSECTION_ID"/>
      </collection-descriptor>

Brandon Goodin
Phase Web and Multimedia
P (406) 862-2245
F (406) 862-0354
[EMAIL PROTECTED]
http://www.phase.ws


> -----Original Message-----
> From: Raymond Lukas [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, December 11, 2002 9:49 AM
> To: OJB Users List
> Subject: RE: MtoN Questions
>
>
> Can I call you at the number below.. I will try and walk you through
> this if I can.. Basically the trick is in the xml repository file..  I
> just got this working so it is pretty fresh in my mind. It is not hard
> just a little tricky.
>
> I started to send you my code but it is huge.. Instead maybe it is
> better for me to point you to an example which you already have. If you
> download the source version of OJB you will find the test scripts. They
> have a lot of really good things in there. The one that I used to get
> this working for me was the NtoMapping. I think that it is in
> src/test/org/apache/obj/broker...
> Also on the web page there is a section called advanced OR mapping. Look
> at the section which talks about collection-descriptors. This is how you
> describe a Vector inside of an java data object. Now you are lucky
> because the intermediate table only contains the ids of the two tables
> you are mapping.. This is the easier case. I have to run right now but
> take
> A few minutes and take a peek there. Just get one way working the other
> way is exactly the same.
>
>
> ------------------ data object definition
> package com.cadence.apps.cadencepdk.model;
>
> import java.util.Collection;
> import java.util.Iterator;
> import java.io.Serializable;
>
> public class UserPrivileges implements Serializable {
>
>     private int userID;
>     private Collection documents;
>
>     public UserPrivileges(){
>     }
>
>     public int getUserID(){
>         return userID;
>     }
>     public Collection getDocuments(){
>         return documents;
>     }
>
>     public void setUserID(int userID){
>         this.userID = userID;
>     }
>     public void setDocuments(Collection documents){
>         this.documents = documents;
>     }
>
>     public String toString(){
>         String returnStr = "UserPrivileges userID=>" + userID + "\n";
>         if (documents != null){
>             Iterator objIter = documents.iterator();
>             while (objIter.hasNext()){
>                 if (returnStr != null){
>                     returnStr = returnStr + "\n" +
> (Document)objIter.next();
>                 }
>                 else {
>                     returnStr = "\n" + (Document)objIter.next();
>                 }
>             }
>         }
>         else {
>             returnStr = returnStr + "\n documents is NULL";
>         }
>         return returnStr;
>     }
> }
>
> ------------------------------------------ the query
>
>     public Response execute(){
>         //  this give me all the docs this user can access.
>         //  with the filters you requested
>         ResponseImpl response = null;
>         List userAccessDocs = new Vector();
>           UserPrivileges  userObj = new UserPrivileges();
>               //      super criteria is just a criteria object which
> filters the           //      results, for now you can just pass
> null..
>           Query query = new QueryByCriteria(UserPrivileges.class,
> super.criteria);
>
>         try {
>             broker.beginTransaction();
>                       userObj = (UserPrivileges)
> broker.getObjectByQuery(query);
>                       userAccessDocs.addAll(userObj.getDocuments());
>                       broker.commitTransaction();
>         }
>         catch (Exception exc) {
>             exc.printStackTrace();
>         }
>
>
> IN THE XML FILE UNDER UserPrivileges
>
>       <collection-descriptor name="documents"
>
> element-class-ref="com.cadence.apps.cadencepdk.model.Document"
>               auto-retrieve = "true"
>               auto-update = "false"
>               indirection-table = "udaccess">
>               <fk-pointing-to-this-class column="userid"/>
>               <fk-pointing-to-element-class column="docid"/>
>       </collection-descriptor>
>
>
> I am sorry for the disorganized brain dump.. Listen if you need some
> more help send me an email at [EMAIL PROTECTED] I will try and grab
> some time and call you if I can.. Okay.. I ma just working like crazy
> but I promised myself that if I got it working I would help someone else
> get it working.. I got to run now though, let me know how this works out
> for you.. :)
>
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
>
>


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

Reply via email to