Pregunta

¿Cuál es la forma estándar de implementar una actualización simple?

Ejemplo: tenemos un usuario con número de teléfono NNNNNN y ahora queremos configurarlo en YYYYYY.

@PersistenceContext
private EntityManager em;

public void update (User transientUser) {
    what should be here?
}

La entidad de usuario es lo más simple posible:

@Entity
@Table (name = "USER")
public class User {

    @Id
    @GeneratedValue
    private Integer id;

    @Column (nullable = false, unique = true)
    private String login;
    private String phone;

    public User () { }

    ... //some setters and getters
}
¿Fue útil?

Solución

De acuerdo con las especificaciones JPA, EntityManager # merge () devolverá una referencia a otro objeto que el que se pasó cuando el objeto ya estaba cargado en el contexto actual . Por lo tanto, prefiero devolver el resultado del merge () y escribir el método update () de esta manera:

@PersistenceContext
private EntityManager em;

public User update (User transientUser) {
    return em.merge(transientUser);
}

Luego, úselo así (omitiendo la parte de inicialización):

user.setPhone("YYYYYY");
user = dao.update(user);

Otros consejos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top