cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alan Baltazar <acatal...@yahoo.com>
Subject RE: UpdateQuery not updating
Date Thu, 06 Apr 2006 15:04:22 GMT

  Thank you much for the help!

--- "Gentry, Michael (Contractor)" <michael_gentry@fanniemae.com> wrote:

> I try to always work on objects (CayenneDataObjects) returned from a
> SelectQuery.  Then when it comes time to update, I do something like:
> 
> // customer is a CayenneDataObject from a previous SelectQuery
> customer.setDateOfBirth(dob);
> ctxt.commitChanges();
> 
> There are some Cayenne tutorials for both JSP/Struts and Tapestry you
> can look at on the web site.  I'm guessing you are using the former
> since with Tapestry you don't have to go and get values out of the
> request cycle.  Those might be helpful, though.
> 
> /dev/mrg
> 
> 
> -----Original Message-----
> From: Alan Baltazar [mailto:acatalanb@yahoo.com] 
> Sent: Wednesday, April 05, 2006 6:57 PM
> To: cayenne-user@incubator.apache.org
> Subject: RE: UpdateQuery not updating
> 
> 
> How would you implement your way for updating tables?
> 
> --- "Gentry, Michael (Contractor)" <michael_gentry@fanniemae.com> wrote:
> 
> > I've never used UpdateQuery before, but try:
> > 
> > UpdateQuery updated =
> >   new UpdateQuery(Customer.class,
> >                   template.expWithParameters(params));
> > 
> > Also, I don't think you need the commitChanges() at the end ...  That
> > would be more useful if you were working with actual
> CayenneDataObjects,
> > which you aren't.  Also, I think your object graph might get
> out-of-sync
> > this way, which could lead to more problems.
> > 
> > /dev/mrg
> > 
> > 
> > -----Original Message-----
> > From: Alan Baltazar [mailto:acatalanb@yahoo.com] 
> > Sent: Wednesday, April 05, 2006 5:13 PM
> > To: cayenne-user@incubator.apache.org
> > Subject: UpdateQuery not updating
> > 
> > 
> > Hello,
> > 
> >   I'm trying to update a field in a table using the UpdateQuery. The
> > following code
> > doesn't update my data.
> > 
> > Date dob = null;
> > DateFormat df = DateFormat.getDateInstance();
> > DataContext ctxt =
> > BasicServletConfiguration.getDefaultContext(request.getSession());
> > 
> > String customerName = request.getParameter("customerName");
> > String dateOfBirth = request.getParameter("dateOfBirth");
> >         
> > Expression template = Expression.fromString("customerName =
> > $customerName");
> > Map params = new HashMap();
> > params.put("customerName", customerName);
> > 
> > UpdateQuery updated = new UpdateQuery(Customer.class,template);    
> >     
> > try { 
> >    dob = df.parse(dateOfBirth);        	
> > }
> > catch(ParseException e) {
> >    System.out.println("Unable to parse ");
> > }
> >         
> > updated.addUpdAttribute("DATE_OF_BIRTH",dob);
> > ctxt.performNonSelectingQuery(updated);
> > ctxt.commitChanges(); 	
> > 
> > return mapping.findForward("success");
> > }
> > 
> > this is the mysql table,
> > CREATE TABLE `CUSTOMER` (
> >   `CUSTOMER_ID` int(10) unsigned NOT NULL ,
> >   `CUSTOMER_NAME` varchar(20) NOT NULL default '',
> >   `DATE_OF_BIRTH` date NOT NULL default '0000-00-00',
> >   PRIMARY KEY  (`CUSTOMER_ID`)
> > ) TYPE=InnoDB;
> > 
> > here's the data object,
> > public class _Customer extends
> org.objectstyle.cayenne.CayenneDataObject
> > {
> > 
> >     public static final String CUSTOMER_NAME_PROPERTY =
> "customerName";
> >     public static final String DATE_OF_BIRTH_PROPERTY = "dateOfBirth";
> >     public static final String PRODUCT_ARRAY_PROPERTY =
> "productArray";
> > 
> >     public static final String CUSTOMER_ID_PK_COLUMN = "CUSTOMER_ID";
> > 
> >     public void setCustomerName(String customerName) {
> >         writeProperty("customerName", customerName);
> >     }
> >     public String getCustomerName() {
> >         return (String)readProperty("customerName");
> >     }
> >     
> >     
> >     public void setDateOfBirth(java.util.Date dateOfBirth) {
> >         writeProperty("dateOfBirth", dateOfBirth);
> >     }
> >     public java.util.Date getDateOfBirth() {
> >         return (java.util.Date)readProperty("dateOfBirth");
> >     }
> >     
> >     
> >     public void addToProductArray(dao.Product obj) {
> >         addToManyTarget("productArray", obj, true);
> >     }
> >     public void removeFromProductArray(dao.Product obj) {
> >         removeToManyTarget("productArray", obj, true);
> >     }
> >     public List getProductArray() {
> >         return (List)readProperty("productArray");
> >     }
> >     
> >     
> > }
> > 
> > 
> >   if there's any other shorter way to do this with UpdateQuery, I'm
> > listening
> > 
> > thanks for any help,
> > alan
> > 
> > __________________________________________________
> > Do You Yahoo!?
> > Tired of spam?  Yahoo! Mail has the best spam protection around 
> > http://mail.yahoo.com 
> > 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Tired of spam?  Yahoo! Mail has the best spam protection around 
> http://mail.yahoo.com 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Mime
View raw message