Hi everybody, i got a strange data manipulation problem. I have a simple form i use for editing and inserting:
| <h:form> | <s:validateAll> | <div> | <h:outputLabel for="firstname">Vorname: </h:outputLabel> | </div> | <div> | <h:inputText id="firstname" value="#{newClientPerson.firstname}" size="70" maxlength="70" required="true"/> | <span class="errors"><h:message for="firstname"/></span> | </div> | <div> | <h:outputLabel for="lastname">Nachname: </h:outputLabel> | </div> | <div> | <h:inputText id="lastname" value="#{newClientPerson.lastname}" size="70" maxlength="70" required="true"/> | <span class="errors"><h:message for="lastname"/></span> | </div> | <div> | <h:commandButton value="Speichern" action="#{clientPersonAction.saveClientPerson}"/> | </div> | </s:validateAll> | </h:form> | And i have the following Action: | @Stateless | @Name("clientPersonAction") | public class ClientPersonEditAction implements ClientPersonEdit{ | | @PersistenceContext | private EntityManager em; | | @RequestParameter() | private Long clientPersonId; | | @In(required=false) | @Out(scope=ScopeType.PAGE,required=false) | @Valid | private ClientPerson newClientPerson; | | @Factory("newClientPerson") | public void createNewClientPerson() | { | if(clientPersonId != null) | { | ClientPersonDAO clientPersonDAO = new ClientPersonDAO(em); | newClientPerson = clientPersonDAO.getClientPersonById(clientPersonId); | System.out.println("createNewClientPerson:" + newClientPerson.getId()); | } | else | { | newClientPerson = new ClientPerson(); | } | } | | public String saveClientPerson() { | ClientPersonDAO clientPersonDAO = new ClientPersonDAO(em); | System.out.println("newClientPerson.getId():" + newClientPerson.getId()); | clientPersonDAO.merge(newClientPerson); | return "home"; | } | | | } | The Entity package org.jboss.seam.example.client; | | import java.io.Serializable; | | import javax.persistence.Entity; | | import org.hibernate.validator.NotNull; | import org.jboss.seam.ScopeType; | import org.jboss.seam.annotations.Scope; | | @Scope(ScopeType.EVENT) | @Entity | public class ClientPerson extends Client implements Serializable{ | | private static final long serialVersionUID = -7846741936105611777L; | private String firstname; | private String lastname; | | @NotNull | public String getFirstname() { | return firstname; | } | | public void setFirstname(String firstname) { | this.firstname = firstname; | } | | @NotNull | public String getLastname() { | return lastname; | } | | public void setLastname(String lastname) { | this.lastname = lastname; | } | | | | | | } | When I fill out the form and save a new object its correctly saved in the database. When some id is passed to the action i can edit the values from the database object and save everything back. BUT: When i open a persisted object from the database and remove the field content from a field that has for example the hibernate validator annotation @NotNull i get the normal message "value required". Then i type in correct data and press the save button a new entity is persisted with all the other fields from the "old" entity but under a different id. Summary: Adding and editing works. Saving a persisted object after a hibernate validation error creates a new one in the database. Any suggestions on that? View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3959913#3959913 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3959913 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user