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