Hi all, but isn't hte purpose of validation to check if the object to be saved is in a valid state? That would imply that validation has a positive (pass) or negative (ValidationException) result, and no side effects. Modifying the object during validation would defeat the purpose, wouldn't it?
Maik > Am 01.03.2017 um 17:12 schrieb Matt Watson <m...@swarmbox.com>: > > When I ran into this same scenario I realized that “validateForInsert” was > the hook I needed, instead of @PrePersist. > > @Override > public void validateForInsert(ValidationResult validationResult) { > if (getReference() == null || getReference().isEmpty()) { > setReference(System.getNextPurchaseOrderReference()); > } > super.validateForInsert(validationResult); > } > > > >> On Mar 1, 2017, at 5:51 AM, Hugi Thordarson <h...@godurkodi.is> wrote: >> >> Hi Jurgen, >> fine suggestion but unfortunately not the part of the lifecycle I need to >> catch—the action needs to be performed before committing, not after adding >> (so basically I need @PrePersist—but I need it before validation happens). >> >> Cheers, >> - hugi >> >> >>> On 1. mar. 2017, at 13:14, <do...@xsinet.co.za> <do...@xsinet.co.za> wrote: >>> >>> Hi Hugi >>> >>> For this kind of thing use @PostAdd instead. >>> >>> Regards >>> Jurgen >>> >>> >>> -----Original Message----- From: Hugi Thordarson >>> Sent: Wednesday, March 1, 2017 1:18 PM >>> To: user@cayenne.apache.org >>> Subject: Validation and @PrePersist >>> >>> Hi all, >>> I have some logic in a Listener that uses @PrePersist to populate the value >>> of a required attribute before committing changes. Turns out this doesn’t >>> work, since Cayenne invokes validateForInsert() before running @PrePersist. >>> >>> Any suggestions for where I can invoke logic populates required values >>> before validation? >>> >>> Cheers, >>> - hugi >> >