You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-user@db.apache.org by ro...@bowtech.com on 2003/09/03 19:03:00 UTC

newbie Q: Update creates new object

Have a problem with updates.

the record that I want to update is altered and then stored in the cache with a new id but the changes are not written to the DB.  The original record is no longer displayed.

When I try to view the altered record with the new id it doesn't exist.

Any help for where to look greatly appreciated  (the insert works fine)

//update code

        DynaValidatorForm _form = (DynaValidatorForm) form; // is in struts

        PersistenceBroker broker = null;
        broker = PersistenceBrokerFactory.defaultPersistenceBroker();
        // build object with matching id to retrive toBeEdited from DB
        SeminarVO search_vo = new SeminarVO();
        search_vo.setId(Long.valueOf(request.getParameter("id")));

        Query query = new QueryByCriteria(search_vo);
        broker.beginTransaction();

        //get toBeEdited
        SeminarVO vo = (SeminarVO) broker.getObjectByQuery(query);
        System.out.println("\n\nid = " + vo.getId());

        //populate toBeEdited
        populateVO(_form, vo);
        System.out.println("\n\n\n after populate id = " + vo.getId());

        broker.store(vo);
        broker.commitTransaction();

//

    public class SeminarVO  extends BaseVO{
    private Long id;
    private Date startDate;
    private Date endDate;
    private Integer stateId;
    private String location;
    private String city;
    // methods and other fields ommitted

// repository_user.xml

<class-descriptor class="com.bowtech.ojb.domainmodel.om.SeminarVO" table="SEMINARS">

<field-descriptor name="id" column="id" jdbc-type="BIGINT" primarykey="true" autoincrement="true"/>

<field-descriptor name="startDate" column="startDate" jdbc-type="DATE"/>

<field-descriptor name="endDate" column="endDate" jdbc-type="DATE"/>

<field-descriptor name="stateId" column="stateId" jdbc-type="INTEGER"/>

<field-descriptor name="location" column="location" jdbc-type="VARCHAR"/>

<field-descriptor name="address1" column="address1" jdbc-type="VARCHAR"/>

<field-descriptor name="address2" column="address2" jdbc-type="VARCHAR"/>

<field-descriptor name="city" column="city" jdbc-type="VARCHAR"/>

//other fields ommitted



Regards

Ross Rotherham

Re: newbie Q: Update creates new object - DISREGARD

Posted by LAURENT Stephane <sl...@adequates.com>.
Hi,
I use this way, working fine ...

        Criteria lCriteria=new Criteria();
        lCriteria.addEqualTo("id",Long.valueOf(request.getParameter("id")));
        Query query = QueryFactory.newQuery(SeminarVO.class,lCriteria);
        SeminarVO vo = (SeminarVO) broker.getObjectByQuery(query);

Regards.
  ----- Original Message ----- 
  From: ross@bowtech.com 
  To: OJB Users List 
  Sent: Wednesday, September 03, 2003 10:37 PM
  Subject: Re: newbie Q: Update creates new object - DISREGARD


  have it partially working now.

  Regards

  Ross Rotherham
  ----- Original Message ----- 
  From: <ro...@bowtech.com>
  To: "OJB Users List" <oj...@db.apache.org>
  Sent: Wednesday, September 03, 2003 1:03 PM
  Subject: newbie Q: Update creates new object


  Have a problem with updates.

  the record that I want to update is altered and then stored in the cache
  with a new id but the changes are not written to the DB.  The original
  record is no longer displayed.

  When I try to view the altered record with the new id it doesn't exist.

  Any help for where to look greatly appreciated  (the insert works fine)

  //update code

          DynaValidatorForm _form = (DynaValidatorForm) form; // is in struts

          PersistenceBroker broker = null;
          broker = PersistenceBrokerFactory.defaultPersistenceBroker();
          // build object with matching id to retrive toBeEdited from DB
          SeminarVO search_vo = new SeminarVO();
          search_vo.setId(Long.valueOf(request.getParameter("id")));

          Query query = new QueryByCriteria(search_vo);
          broker.beginTransaction();

          //get toBeEdited
          SeminarVO vo = (SeminarVO) broker.getObjectByQuery(query);
          System.out.println("\n\nid = " + vo.getId());

          //populate toBeEdited
          populateVO(_form, vo);
          System.out.println("\n\n\n after populate id = " + vo.getId());

          broker.store(vo);
          broker.commitTransaction();

  //

      public class SeminarVO  extends BaseVO{
      private Long id;
      private Date startDate;
      private Date endDate;
      private Integer stateId;
      private String location;
      private String city;
      // methods and other fields ommitted

  // repository_user.xml

  <class-descriptor class="com.bowtech.ojb.domainmodel.om.SeminarVO"
  table="SEMINARS">

  <field-descriptor name="id" column="id" jdbc-type="BIGINT" primarykey="true"
  autoincrement="true"/>

  <field-descriptor name="startDate" column="startDate" jdbc-type="DATE"/>

  <field-descriptor name="endDate" column="endDate" jdbc-type="DATE"/>

  <field-descriptor name="stateId" column="stateId" jdbc-type="INTEGER"/>

  <field-descriptor name="location" column="location" jdbc-type="VARCHAR"/>

  <field-descriptor name="address1" column="address1" jdbc-type="VARCHAR"/>

  <field-descriptor name="address2" column="address2" jdbc-type="VARCHAR"/>

  <field-descriptor name="city" column="city" jdbc-type="VARCHAR"/>

  //other fields ommitted



  Regards

  Ross Rotherham



  ---------------------------------------------------------------------
  To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
  For additional commands, e-mail: ojb-user-help@db.apache.org



  ---
  Outgoing mail is certified Virus Free.
  Checked by AVG anti-virus system (http://www.grisoft.com).
  Version: 6.0.514 / Virus Database: 312 - Release Date: 29/08/2003

Re: newbie Q: Update creates new object - DISREGARD

Posted by ro...@bowtech.com.
have it partially working now.

Regards

Ross Rotherham
----- Original Message ----- 
From: <ro...@bowtech.com>
To: "OJB Users List" <oj...@db.apache.org>
Sent: Wednesday, September 03, 2003 1:03 PM
Subject: newbie Q: Update creates new object


Have a problem with updates.

the record that I want to update is altered and then stored in the cache
with a new id but the changes are not written to the DB.  The original
record is no longer displayed.

When I try to view the altered record with the new id it doesn't exist.

Any help for where to look greatly appreciated  (the insert works fine)

//update code

        DynaValidatorForm _form = (DynaValidatorForm) form; // is in struts

        PersistenceBroker broker = null;
        broker = PersistenceBrokerFactory.defaultPersistenceBroker();
        // build object with matching id to retrive toBeEdited from DB
        SeminarVO search_vo = new SeminarVO();
        search_vo.setId(Long.valueOf(request.getParameter("id")));

        Query query = new QueryByCriteria(search_vo);
        broker.beginTransaction();

        //get toBeEdited
        SeminarVO vo = (SeminarVO) broker.getObjectByQuery(query);
        System.out.println("\n\nid = " + vo.getId());

        //populate toBeEdited
        populateVO(_form, vo);
        System.out.println("\n\n\n after populate id = " + vo.getId());

        broker.store(vo);
        broker.commitTransaction();

//

    public class SeminarVO  extends BaseVO{
    private Long id;
    private Date startDate;
    private Date endDate;
    private Integer stateId;
    private String location;
    private String city;
    // methods and other fields ommitted

// repository_user.xml

<class-descriptor class="com.bowtech.ojb.domainmodel.om.SeminarVO"
table="SEMINARS">

<field-descriptor name="id" column="id" jdbc-type="BIGINT" primarykey="true"
autoincrement="true"/>

<field-descriptor name="startDate" column="startDate" jdbc-type="DATE"/>

<field-descriptor name="endDate" column="endDate" jdbc-type="DATE"/>

<field-descriptor name="stateId" column="stateId" jdbc-type="INTEGER"/>

<field-descriptor name="location" column="location" jdbc-type="VARCHAR"/>

<field-descriptor name="address1" column="address1" jdbc-type="VARCHAR"/>

<field-descriptor name="address2" column="address2" jdbc-type="VARCHAR"/>

<field-descriptor name="city" column="city" jdbc-type="VARCHAR"/>

//other fields ommitted



Regards

Ross Rotherham



---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org