1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Generic DAO Hibernate

Boa noite, tem uma pequena duvida, estou fazendo um projeto de consultas, e estou usando um Generic DAO abaixo.

package br.com.locadora.Dao;

import java.lang.reflect.ParameterizedType;
import java.util.List;

import javax.persistence.EntityManager;



@SuppressWarnings("unchecked")
public class GenericDAO<PK, T> {
    private EntityManager entityManager;

    public GenericDAO(EntityManager entityManager) {
        this.entityManager = entityManager;
    }

    public T getById(PK pk) {
        return (T) entityManager.find(getTypeClass(), pk);
    }

    public void save(T entity) {
        entityManager.persist(entity);

    }

    public void update(T entity) {
        entityManager.merge(entity);
    }

    public void delete(T entity) {
        entityManager.remove(entity);
    }

    public List<T> findAll() {
        return entityManager.createQuery(("FROM " + getTypeClass().getName()))
                .getResultList();
    }

    private Class<?> getTypeClass() {
        Class<?> clazz = (Class<?>) ((ParameterizedType) this.getClass()
                .getGenericSuperclass()).getActualTypeArguments()[1];
        return clazz;
    }

    public EntityManager getEntityManager() {
        return entityManager;
    }

    public void setEntityManager(EntityManager entityManager) {
        this.entityManager = entityManager;
    }
}
        btnApagar = new JButton("Apagar");
        btnApagar.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                if (edtNome.getText().equals("")
                        && (edtQtde.getText().equals("") && (edtTipo.getText()
                                .equals("")))) {

                    JOptionPane.showMessageDialog(null,
                            "Para apagar o cliente," + "\n"
                                    + "selecione na area de Pesquisa");

                    return;

                }

                edtNome.setEnabled(true);
                edtQtde.setEnabled(true);
                edtTipo.setEnabled(true);

                Object[] options = { "Sim", "Não" };
                int n = JOptionPane
                        .showOptionDialog(null,
                                "Deseja mesmo apagar esse cliente ", "Exemplo",
                                JOptionPane.YES_NO_OPTION,
                                JOptionPane.QUESTION_MESSAGE, null, options,
                                options[0]);
                if (n == JOptionPane.YES_OPTION) {
                    daofilmes.delete(objFilme);
                    limpaTela();
                    habilitaBarra(Constantes.BTNEXCLUIR);
                }

            }
        edtBuscar = new JButton("Buscar");
        edtBuscar.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                objCliente = new Cliente();

                // Pegando os dados nos seus respctivos campos
                objCliente.setNome(edtValor.getText());

                // Fazendo o select no Banco
                List<Cliente> selectCliente = daoCliente.findAll();

                // criando o objeto que vai receber os dados
                ClienteTable tableCli = new ClienteTable();

                tableCli.addListaDeCliente(selectCliente);

                // Preenchendo tabela
                edttable.setModel(tableCli);

Para fazer o insert e o select simples tudo numa boa, só que agora preciso fazer um delete é um select com WHERE é não encontro como fazer.

Se alguém puder me dar uma luz, um artigo qualquer coisa sobre essas propriedades. segue dois modelos com select e com delete

Agradecido.

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.