estou com pequeno problema aqui na minha persistência, acho que errei alguma coisa.
interface
public interface Clientes {
void adiciona(Cliente t);
void excluir(Cliente t);
void atualiza(Cliente t);
DAO
public class ClienteDAO implements Clientes, Serializable {
private static final long serialVersionUID = 1L;
private EntityManager manager;
public void adiciona(Cliente t) {
manager.persist(t);
}
public void excluir(Cliente t) {
manager.remove(manager.merge(t));
}
public void atualiza(Cliente t) {
manager.merge(t);
}
public Cliente buscaPorId(Integer id) {
Cliente instancia = manager.find(Cliente.class, id);
return instancia;
}
public List<Cliente> listaTodos() {
Query query = manager.createQuery("select c from Cliente c");
List<Cliente> result = query.getResultList();
return result;
}
}
public class GestaoCliente implements Serializable {
private static final long serialVersionUID = 1L;
Clientes clientes;
List<Cliente> lista_clientes = new ArrayList<Cliente>();
public GestaoCliente(Clientes clientes) {
this.clientes = clientes;
}
public void salvar(Cliente cliente) throws RegraNegocioException {
try {
if (cliente == null) {
clientes.adiciona(cliente);
MensagemUtil.AdicionaMensagem(FacesMessage.SEVERITY_INFO, "Cliente salvo com sucesso!");
} else {
clientes.atualiza(cliente);
MensagemUtil.AdicionaMensagem(FacesMessage.SEVERITY_INFO, "Cliente atualizado com sucesso!");
}
cliente = new Cliente();
} catch (Exception e) {
throw new RegraNegocioException("Erro ao salvar o cliente");
}
}
Bean
@Named // anotação CDI que substitui o @ManagedBean
@ViewScoped
public class ClienteBean implements Serializable {
private static final long serialVersionUID = 1L;
private Cliente cliente;
private Integer idCliente;
private Clientes clientes;
GestaoCliente gestaoCliente = new GestaoCliente(clientes);
@PostConstruct
public void init() {
this.cliente = new Cliente();
}
@Transacional
public void gravar() {
try {
gestaoCliente.salvar(cliente);
} catch (Exception e) {
System.out.println("Erro:" + e.getMessage());
MensagemUtil.AdicionaMensagem(FacesMessage.SEVERITY_ERROR, e.getMessage());
}
}
Transacao
@SuppressWarnings(“serial”)
@Transacional
@Interceptor
public class GerenciadorDeTransacao implements Serializable{
@Inject
EntityManager manager;
@AroundInvoke
public Object executaTx(InvocationContext context) throws Exception {
manager.getTransaction().begin();
Object resultado = context.proceed(); // continua executando
manager.getTransaction().commit();
return resultado;
}
}
Visualizei o log aqui, algo está nullo. no Cliente do meu Bean já estáo com getters e setters;
e imprimir é uma consulta
Hibernate:
select
usuario0_.idUsuario as idUsuari1_2_,
usuario0_.login as login2_2_,
usuario0_.senha as senha3_2_
from
Usuario usuario0_
where
usuario0_.login=?
and usuario0_.senha=?
/Home.xhtml
/cliente/CadastroCliente.xhtml
/cliente/CadastroCliente.xhtml
Errojava.lang.NullPointerException