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

Reply via email to