How would you implement your way for updating tables? --- "Gentry, Michael (Contractor)" <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED] > Sent: Wednesday, April 05, 2006 5:13 PM > To: [email protected] > 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
