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]>
