Problem with hibernate validator
alvarano Mar 4, 2009 12:52 PMHello community,
I'm a newbie in seam and I want to create a test application. Therefor I use hibernate and jpa as persistence layer, spring and icefaces with facelets. The application runs on a Tomcat 6.0 and the deployment process is done by maven. I want to validate the userinputs of an ice:form against the hibernate validator. The required=true
attribute works fine but when I enter 2 digits for the zipCode (@Length(min = 3)) I get an
org.hibernate.validator.InvalidStateException: validation failed for: poc_icefaces.model.User
and the form site isn't redisplayed.
Here is my code:
UserServiceImpl.java
@Name("userService")
@Scope(ScopeType.CONVERSATION)
@Transactional
public class UserServiceImpl implements UserService {
@In
private EntityManager em;
@In (required = false, scope = ScopeType.CONVERSATION)
@Out(required = false, scope = ScopeType.CONVERSATION)
private User user;
@Begin
public String editUser(User selectedUser) {
user = em.merge(selectedUser);
return "edit";
}
@End
public void saveUser() {
em.persist(user);
}User.java (entity):
@Entity
@Name("user")
@Scope(ScopeType.CONVERSATION)
public class User {
private Long id;
private String zipCode;
@Id @GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
...
@Length(min = 3)
public String getZipCode() {
return zipCode;
}
public void setZipCode(String zipCode) {
this.zipCode = zipCode;
}
}editUser.jspx:
<s:decorate>
<h:inputText id="zipCode" value="#{user.zipCode}" required="true">
<s:validate />
</h:inputText>
<h:message for="zipCode"/>
</s:decorate>pages.xml:
<page view-id="/protected/user/editUser.jspx">
<action execute="#{userService.saveUser}" if="#{validation.succeeded}" />
<navigation from-action="#{userService.saveUser}">
<redirect view-id="/protected/user/userManagement.jspx" />
</navigation>
</page>I hope you can help me ...