Galera,
Mais um teste aqui na especificação EJB/JPA.
Seguinte,
Um obeto/entidade que ainda não está gerenciado pelo contexto deve receber um erro ao tentar executar uma operação do tipo merge, ok?
Segue um exemplo do teste (mais uma vez, código cheio de “marreta”, só pra teste hehehe)
public class ClienteServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
@EJB
private ClienteBean clienteBean;
@PersistenceContext(unitName=Constantes.JNDI.Persist.VENDA)
private EntityManager entityManager;
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
Cliente cliente = new Cliente();
cliente.setNome("charles");
cliente.setAltura(999);
clienteBean.alterar(cliente);
}
}
Método ejb:
public void alterar(Cliente cliente) {
cliente.setAltura(871);
cliente.setId(1L);
entityManager.merge(cliente);
}
Ao chamar esse método não deveria tomar uma exceção? porque o cliente não está sendo gerenciado.
Criei ele no servlet, alterei no ejb e momento nenhum fiz “coloquei” ele no contexto, porque atualiza sem erro?
vlws.