I found my mistake.
I forgot to set the Id to force an update of the object.
Christophe
> Message du 26/06/03 10:49
> De : cmarcourt <[EMAIL PROTECTED]>
> A : [EMAIL PROTECTED]
> Copie � :
> Objet : Am I missing something for the update
> Hi,
>
> update works perfectly well in my application for small modification, says only one
> setter.
> Now I've got a big big form (it's an eight step form). I stored its values in a
> session during all the time.
> I trace the value for a specific field, this value is right to the end.
> But when I call the store() method, it's just like these field are not updated in
> the database.
> Here is the java source with the trace.
>
> Say I set the adult capacity to 20.
>
> private void update() {
> Collection c = null;
> java.util.Iterator it = null;
> PersistenceBroker broker = null;
> com.hbk.bean.House house = (com.hbk.bean.House)
> super.session.getAttribute(Constant.SESSION_HOUSE);
> MandarinoLogger.getInstance(Constant.HOUSEBOOKING_LOGGER_NAME).debug("adult
> capacity 1 : " + house.getAdultCapacity()); // print 20
>
> if (house!=null) {
> try {
> broker = PersistenceBrokerFactory.defaultPersistenceBroker();
> broker.clearCache();
>
> this.processFinalForm(house);
>
> MandarinoLogger.getInstance(Constant.HOUSEBOOKING_LOGGER_NAME).debug("adult capacity
> 2 : " + house.getAdultCapacity()); // print 20
> house.setModificationDate(new java.util.Date());
>
> MandarinoLogger.getInstance(Constant.HOUSEBOOKING_LOGGER_NAME).debug("adult capacity
> 3 : " + house.getAdultCapacity()); // print 20
>
> Criteria criteria = new Criteria();
> criteria.addEqualTo("id", new Integer(house.getId()));
>
> MandarinoLogger.getInstance(Constant.HOUSEBOOKING_LOGGER_NAME).debug("adult capacity
> 4 : " + house.getAdultCapacity()); // print 20
> QueryByCriteria query = new
> QueryByCriteria(com.hbk.bean.House.class, criteria);
>
> MandarinoLogger.getInstance(Constant.HOUSEBOOKING_LOGGER_NAME).debug("adult capacity
> 5 : " + house.getAdultCapacity()); // print 20
>
> broker.beginTransaction();
>
> MandarinoLogger.getInstance(Constant.HOUSEBOOKING_LOGGER_NAME).debug("adult capacity
> 6 : " + house.getAdultCapacity()); // print 20
>
> com.hbk.bean.House toBeEdited = (com.hbk.bean.House)
> broker.getObjectByQuery(query);
>
> MandarinoLogger.getInstance(Constant.HOUSEBOOKING_LOGGER_NAME).debug("adult capacity
> 7 : " + house.getAdultCapacity()); // print 20
>
> toBeEdited.setAdultCapacity(house.getAdultCapacity());
>
> MandarinoLogger.getInstance(Constant.HOUSEBOOKING_LOGGER_NAME).debug("adult capacity
> 8 : " + house.getAdultCapacity()); // print 20
>
> MandarinoLogger.getInstance(Constant.HOUSEBOOKING_LOGGER_NAME).debug("adult capacity
> 9 : " + toBeEdited.getAdultCapacity()); // print 20 (notice the toBeEdited and not
> the house object, I know it's stupid, but I can't believe it !!!!)
> toBeEdited.setChildCapacity(house.getChildCapacity());
> toBeEdited.setCity(house.getCity());
> toBeEdited.setCountry(house.getCountry());
> toBeEdited.setDisplay(house.isDisplay());
> toBeEdited.setDistrict(house.getDistrict());
> toBeEdited.setHistoricals(house.getHistoricals());
> toBeEdited.setInteriorDescriptions(house.getInteriorDescriptions());
> toBeEdited.setInventory(house.getInventory());
> toBeEdited.setModificationDate(house.getModificationDate());
> toBeEdited.setName(house.getName());
> toBeEdited.setNewProduct(house.isNewProduct());
> toBeEdited.setOutsideDescriptions(house.getOutsideDescriptions());
> // toBeEdited.setOwner(house.getOwner());
> // toBeEdited.setPhotos(house.getPhotos());
> toBeEdited.setReference(house.getReference());
> // toBeEdited.setRooms(house.getRooms());
> toBeEdited.setSellPrice(house.getSellPrice());
> // toBeEdited.setServices(house.getServices());
> toBeEdited.setStreet1(house.getStreet1());
> toBeEdited.setStreet2(house.getStreet2());
> toBeEdited.setStreet3(house.getStreet3());
> toBeEdited.setSurface(house.getSurface());
> toBeEdited.setType(house.getType());
> toBeEdited.setZipCode(house.getZipCode());
>
> broker.store(toBeEdited);
> broker.commitTransaction();
>
> this.processPhotoFile(house);
> } catch (org.apache.ojb.broker.PersistenceBrokerException pbe) {
>
> MandarinoLogger.getInstance(Constant.HOUSEBOOKING_LOGGER_NAME).fatal(pbe);
> } finally {
> broker.clearCache();
> broker.close();
> }
> }
> }
>
> Do you see a strange thing in my code ?
>
> Christophe
>
> ---------------------------------------------------------------------
> 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]