java - Grails framework method addTo throws exception on multiple invoke -
i want add subscriptions user class, invoking "addto" method, here code:
if (params.jobs == "on") { user.addtosubscriptions(category.findwhere(id: 1l)) } else { user.removefromsubscriptions(category.findwhere(id: 1l)) } the "params" come checkboxes, user can subscribe category setting checkboxes. code above invoked when form submitted. doesn't work when user changes more 1 categories, think of same code above different params.x, this
if (params.offers == "on") { category cat = category.get(2) if (!user.subscriptions.contains(cat)) user.addtosubscriptions(category.findwhere(id: 2l))//needs long variable } else { user.removefromsubscriptions(category.findwhere(id: 2l)) } what happens category wich first in code gets added , removed, other throw following exception:
org.hibernate.exception.genericjdbcexception: not execute jdbc batch update edit: line in wich exception thrown 1 tho, wich makes no sense me :(
edit: exception gets thrown when want add category, wich added, doesnt removed. (thats categories not handled first in code, dont ask me why)
//reload page redirect(action: "usersettings") what can do? please help! lot in advance! daniel
is possible trying remove category not associated user? know... user has no category id = 2 , sent params.offers == "off" ?
maybe should like:
if (params.jobs == "on") { user.addtosubscriptions(category.findwhere(id: 1l)) } else { category cat = category.get(2l) if (user.subscriptions.contains(cat)) { user.removefromsubscriptions(cat) } } few tips: if have id, don't use:
category.findwhere(id:1l) but:
category.get(1l) the error thrown on line pasted, because last line of controller, after line yout transaction committed error thrown.
try adding code controller:
user.save() user.errors?.allerrors?.each { println } this print errors happened during save.
Comments
Post a Comment