I got it to be "sort-of" working with the following spring beans configuration, if anyone else needs to know as well - saves them some time.
Code:
<bean id="validationFactory" class="javax.validation.Validation"
factory-method="buildDefaultValidatorFactory" />
<bean id="beanValidationEventListener" class="org.hibernate.cfg.beanvalidation.BeanValidationEventListener">
<constructor-arg index="0" ref="validationFactory" />
<constructor-arg index="1">
<!-- I dunno what the heck goes here -->
<props></props>
</constructor-arg>
</bean>
Wiring in the listener is the same as before:
Code:
<property name="eventListeners">
<map>
<entry key="pre-insert" value-ref="beanValidationEventListener" />
<entry key="pre-update" value-ref="beanValidationEventListener" />
</map>
</property>
I do get one exception though, and of course, I have no idea what the heck it means as Groups are something that was added:
Code:
javax.validation.ConstraintViolationException: Invalid object at persist time for groups [javax.validation.groups.Default, ]
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.validate(BeanValidationEventListener.java:83)
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.onPreInsert(BeanValidationEventListener.java:51)
at org.hibernate.action.EntityIdentityInsertAction.preInsert(EntityIdentityInsertAction.java:142)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:65)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:321)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:130)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:210)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:195)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:117)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:93)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:538)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:530)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:526)
at org.springframework.orm.hibernate3.HibernateTemplate$16.doInHibernate(HibernateTemplate.java:740)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.saveOrUpdate(HibernateTemplate.java:737)
I'm reasonably confident everything else I did is accurate. Even going through the messages names (validator.notEmpty and so on) and changing the ValidatorMessages to ValidationMessages.properties... Man, there were so many changes to be made to upgrade ;)
I thought this might be due to my customized @QueryConstraint, but nope... says the same exception. Turns out the problem has to do with this:
@Pattern( regexp = "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,4}$",
message = "{userAccount.email.valid}" )
LOL. Oh, the irony. The 1 thing I change because @Email wasn't supported... and I get it wrong :) Of course, I dunno what's wrong exactly about it because the exception says nothing to me personally.
I'll keep plugging...