Humm.. Man.. Brandon, if you can trim your code down and send it to me with the schema and you xml file. I could give it a try and see if I can fix it. I have a little time, got my project done (thank God) and know how frustrating something like this can be. I am new to all of this stuff but I am willing to help you out.. Zip up a minimal section which fails and fire it off to me.. I am kind of curious what is wrong and I could use more practice with OJB. It is easier for me if I can see the whole thing...
Send it to [EMAIL PROTECTED] No guarantees other than I will try.. At least you will have another set of eyes... ------------------------------------------------------- -----Original Message----- From: Phase Web and Multimedia [mailto:[EMAIL PROTECTED]] Sent: Wednesday, December 11, 2002 3:18 PM To: OJB Users List Subject: RE: MtoN Questions I have tried it both ways. It fails when I pass an integer and a String. It even fails when I do a cut and paste from the NtoMapping example from the OJB sample code. Brandon Goodin Phase Web and Multimedia P (406) 862-2245 F (406) 862-0354 [EMAIL PROTECTED] http://www.phase.ws > -----Original Message----- > From: Pete Gieser [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, December 11, 2002 12:50 PM > To: 'OJB Users List' > Subject: RE: MtoN Questions > > > 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]> > > -- 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]>
