Pergunta

Qual é a maneira padrão de implementar atualização simples?

Exemplo: temos o usuário com número de telefone nnnnnn e agora queremos defini -lo como yyyyyy.

@PersistenceContext
private EntityManager em;

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

A entidade do usuário é o mais simples possível:

@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
}
Foi útil?

Solução

De acordo com as especificações da JPA, EntityManager#merge() retornará uma referência a outro objeto do que o passou quando o objeto já estava carregado no contexto atual. Então, eu prefiro devolver o resultado do merge() e escreva o update() Método como este:

@PersistenceContext
private EntityManager em;

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

Em seguida, use assim (pulando a parte da inicialização):

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

Outras dicas

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top