If you know you are only getting one object back (and only want one),
pb.getObjectByQuery(...) may be an even better option.

-Brian

On Mon, 2003-02-03 at 09:01, John Holman wrote:
> getCollectionByQuery() returns a Collection. You probably need to 
> extract the first element and assign *that*
> to your Product variable.
> 
> John.
> 
> 
> luis barreiro wrote:
> 
> >When I try to execute a query among my database with ojb I catch the next
> >exception:
> >
> >
> >java.lang.ClassCastException: Product
> >        at
> >org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQ
> >uery(Unknown Source)
> >        at
> >org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQ
> >uery(Unknown Source)
> >        at
> >org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQ
> >uery(Unknown Source)
> >        at
> >org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getCollect
> >ionByQuery(Unknown Source)
> >        at ProductOJBDAO.findAll(ProductOJBDAO.java:13)
> >        at ProductAccessor.findAll(ProductAccessor.java:26)
> >        at ProductAccessor.main(ProductAccessor.java:77)
> >InternalErrorException: Product
> >        at ProductAccessor.findAll(ProductAccessor.java:28)
> >        at ProductAccessor.main(ProductAccessor.java:77)
> >
> >Source of Product class is....
> >
> >public class Product
> >    {
> >        /**
> >         * this is the primary key attribute needed by OJB to
> >         * identify instances
> >         */
> >        private int id;
> >
> >     public int getId() {
> >             return id;
> >     }
> >
> >     public void setId(int id) {
> >             this.id = id;
> >     }
> >
> >        /** product name*/
> >        protected String name;
> >        /** price per item*/
> >        protected int price;
> >        /** stock of currently available items*/
> >        protected int stock;
> >
> >     public Product() {}
> >
> >     public String getName() {
> >             return this.name;
> >     }
> >
> >     public void setName(String name) {
> >             this.name = name;
> >     }
> >
> >     public int getPrice() {
> >             return this.price;
> >     }
> >
> >     public void setPrice(int price) {
> >             this.price = price;
> >     }
> >
> >     public int getStock() {
> >     return this.stock;
> >     }
> >
> >     public void setStock(int stock) {
> >             this.stock = stock;
> >     }
> >   }
> >
> >and respositoy.xml asociated is....
> >
> >
> > <class-descriptor
> >      class="Product"
> >      table="product"
> >      sequence-manager="
> >org.apache.ojb.broker.util.sequence.SequenceManagerHiLoImpl"
> >   >
> >      <field-descriptor id="1"
> >         name="id"
> >         column="id"
> >         jdbc-type="INTEGER"
> >         primarykey="true"
> >      autoincrement="true"
> >      />
> >
> >      <field-descriptor id="2"
> >         name="name"
> >         column="name"
> >         jdbc-type="VARCHAR"
> >      />
> >      <field-descriptor id="3"
> >         name="price"
> >         column="price"
> >         jdbc-type="INTEGER"
> >      />
> >      <field-descriptor id="4"
> >         name="stock"
> >         column="stock"
> >         jdbc-type="INTEGER"
> >      />
> >   </class-descriptor>
> >
> >.... but when I try to insert or delete a instance of product on my
> >database, it's OK!!!!
> >
> >Any idea ?¿?
> >
> >Thanks in advanced and sorry for my poor english!!!!
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >  
> >
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]


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

Reply via email to