Hi,
How are you guys doing validation in your objects using cayenne?
The way I like to do it is to have a validate method in every
object, and then call this method before the transaction commits. This
validate method checks for mandatory values as well as simple business
rules, like start date before end date, and more complicated ones, like
the sum of all items in a budget cannot be larger than a limit amount,
if an amount is given and the sky is cloudy.
The way I tried to do is to make my objects implement
DataObjectTransactionEventListener.willCommit(DataContextEvent) and do
all the checks there. But I haven't found a way to abort the commit from
there. If I throw an exception, it just get logged (see
Invocation.fire(Object[])) if I call DataContext.rollbackChanges() it
crashes (I was expecting that actually).
Is there any other way of doing something like this? How are you
guys doing?
Thanks for your help,
-- Fabricio Voznika Senior Programmer/Analyst Administrative Computing Dartmouth College Phone: 603-646-2007
This archive was generated by hypermail 2.0.0 : Fri Jul 25 2003 - 10:52:17 EDT