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]

Reply via email to