package org.jboss.seam.remoting.examples.model;
import java.io.Serializable;
import java.util.ArrayList;
import javax.enterprise.context.Conversation;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import org.apache.deltaspike.jpa.api.transaction.Transactional;
import org.jboss.seam.remoting.annotations.WebRemote;
//import org.jboss.seam.transaction.Transactional;
public
@ConversationScoped
class PersonAction implements Serializable {
private static final long serialVersionUID = -1923705862231821692L;
@Inject
EntityManager entityManager;
@Inject
Conversation conversation;
private Person person;
@WebRemote
public void createPerson() {
conversation.begin();
person = new Person();
person.setAddresses(new ArrayList<Address>());
}
@WebRemote
public void editPerson(Integer personId) {
conversation.begin();
person = entityManager.find(Person.class, personId);
}
@WebRemote
@Transactional
public void savePerson() throws Exception {
if (person.getPersonId() == null) {
entityManager.persist(person);
} else {
person = entityManager.merge(person);
}
conversation.end();
}
public Person getPerson() {
return person;
}
}