Manejar una transacción en JEE para modificar un elemento...

Saludos a todas en esta comunidad, hace algun tiempo me he registrado y mi impresión es
muy buena. Soy cubano y esta es la comunidad que me queda más cerca (jajaja), asi que me siento como en casa. Gracias a Java México.

Aquí les dejo un ejemplo de cómo manejar una transacción en JEE para modificar un elemento.
saludos.

@PersistenceContext
private EntityManager em;
@Resource
private UserTransaction ut;

public void modificarOrden(Integer idOrden, Orden ordenProd) throws NoSuchElementException, Exception {
try {
//abrimos la transacción
this.ut.begin();
//localizamos el elemento al cual vamos a modificar
PreOrdenProduccion ordenModi1 = this.em.find(Orden.class, idOrden);
//creamos una referencia al objeto
PreOrdenProduccion ordenModi = this.em.merge(ordenModi1);

//actualizando Orden
ordenModi.setCliente(ordenProd.getCliente());
ordenModi.setCodigo(ordenProd.getCodigo());
ordenModi.setDestino(ordenProd.getDestino());
this.ut.commit();
}
}

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

Bien..

Sólo un par de sugerencias, cuando escribas código ponlo entre tags de <code> y </code> para que se vea la diferencia entre tu explicación y el código Java.
Segunda, sería bueno que colocaras el código de la clase Orden porque sin contexto, no es tan fácil entender de dónde salen los get que colocas.

sugerencias aceptadas y aclaraciones

ok neko069, gracias por las sugerencias...
ahora mirando bien veo que podria dar alguna explicacion más...

los parametros son el id del elemento a modificar y una intancia del mismo tipo con los datos nuevos.

Imagen de paranoid_android

Podrias agregar los imports

Hola podrias agregar los imports.
Saludos y Gracias

import

import administracion.AreasRemote;
import administracion.ConceptodegastoBeanRemote;
import administracion.ElementoGastosRemote;
import com.svcon.jdbf.DBFReader;
import com.svcon.jdbf.JDBFException;
import entidades.RhArea;
import entidades.PreCoeficiente;
import entidades.PreCoeficientePK;
import entidades.PreConceptoGastos;
import entidades.PreDatostecnologicosdelservicio;
import entidades.PreElementoGastos;
import entidades.CtEmpresaCliente;
import entidades.PreEquipos;
import entidades.PreFichaConceptoElemento;
import entidades.PreFichaCosto;
import entidades.PreFuerzadetrabajo;
import entidades.RhGrupoSalarial;
import entidades.AlmMateriales;
import entidades.PreMoneda;
import entidades.PreNominademateriales;
import entidades.RhOperario;
import entidades.PreOperaciones;
import entidades.Orden;
import java.io.File;
import java.math.BigDecimal;
import java.math.MathContext;
import java.sql.ResultSet;
import java.util.AbstractCollection;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.NoSuchElementException;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.ejb.EJBException;
import javax.ejb.Stateful;
import javax.ejb.Stateless;
import javax.ejb.TransactionManagement;
import javax.ejb.TransactionManagementType;
import javax.persistence.EntityExistsException;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.NonUniqueResultException;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.transaction.RollbackException;
import javax.transaction.UserTransaction;

Imagen de paranoid_android

Gracias

Gracias, era para ver de donde salian las anotaciones.

Me he perdido

Yo pensaba que los objetos del mundo real se modelaban en clases, que en J2EE son Entities, dónde la transaccionalidad de los métodos es gobernada por un descriptor XML (por ejemplo: <trans-attribute>Required</trans-attribute>) ¿no?

O dicho de otra forma, si la tecnología no nos proporciona una manera ágil, eficaz, extensible y robusta de manejar las transacciones, mal vamos....

Salu2