Just a thought, does it matter if the database is storing
id as an int and you are using a String for it in your Criteria?
Maybe that's why there is no match, and hence an empty result.

Pete


> -----Original Message-----
> From: Phase Web and Multimedia [mailto:[EMAIL PROTECTED]] 
> Sent: Wednesday, December 11, 2002 1:04 PM
> To: OJB Users List
> Subject: RE: MtoN Questions
> 
> 
> 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:ojb-user-> [EMAIL PROTECTED]>
> > For 
> additional commands, 
> e-mail: <mailto:[EMAIL PROTECTED]>
> >
> >
> 
> 
> --
> To unsubscribe, e-mail:   
> <mailto:ojb-user-> [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