Is it possible to implement a hibernate validator with this functionality (run a query to determine uniqueness)? It's not clear from looking at the hibernate validator docs how i would inject a persistence context to use.
BTW, I got the above strategy to work, but had to change a few things to get it to validate the unique property field itself. It wasn't clear how to set up the view to validate the *entire* object. | @Name("clusterConfigUniqueValidator") | @Validator | @Transactional | public class ClusterConfigUniqueNameValidator implements javax.faces.validator.Validator, Serializable{ | @In | EntityManager entityManager; | | @In EntityHome<ClusterConfig> clusterConfigHome; | | public void validate(FacesContext facesContext, UIComponent component, | Object value) throws ValidatorException { | String name = (String) value; | ClusterConfig cc = clusterConfigHome.getInstance(); | try { | ClusterConfig cc1 = (ClusterConfig) entityManager.createQuery("select cc from ClusterConfig cc where cc.name = :name") | .setParameter("name", name).getSingleResult(); | if (cc1 != null && !cc1.getId().equals(cc.getId())) { | throw new ValidatorException(new FacesMessage("Name must be unique")); | } | } catch (NoResultException nre) { | // that's fine - this name is unique. | } | } | | } | | And then on the edit page: | | <s:decorate id="nameDecoration" template="layout/textField.xhtml"> | <ui:define name="label">Name:</ui:define> | <h:inputText fieldIdBase="name" id="name" value="#{clusterConfig.name}" required="true"> | <f:validator validatorId="clusterConfigUniqueValidator"/> | <s:validate/> | </h:inputText> | </s:decorate> | | Also, what about dealing with SQLException when you delete something and violate a foreign key constraint? Does anybody have a recommendation for how to avoid this gracefully? Should I not display the delete link/button on my list page if it's referenced (which would require an extra query per entity listed)? Write a custom exception handler in pages.xml to catch SQLException and a custom error page/handler that somehow parses the message? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4060043#4060043 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4060043 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user