Jdo + Embedded + "Foreign Key"

3 respostas
ericsobral

Olá pessoal, eu comecei a desenvolver uma aplicação pro GAE e estou trabalhando com JDO pela primeira vez.

Eu criei uma classe “profissão” e uma classe “usuario” (onde eu coloquei o atributo profissão marcado com a annotation “embedded”). As profissões são cadastradas em um crud separado e na hora de cadastrar o usuário ele seleciona a sua profissão.

Minha dúvida é a seguinte: meu mapeamento está permitindo remover uma profissão que está associada a um usuário. Eu preciso criar uma “foreign key” que não permitisse isso. Alguém pode me ajudar?

abraços

3 Respostas

A

Bom como vc falou q vc faz um crud… pelo SGBD ele trata isso e não te deixa excluir algo que tenha referencia com outra tabela… desde que vc não setou sua foreign key como delete on cascade.

ericsobral

Olá anderson, tudo certo?

Assim, ele deixa eu excluir a profissão, mas ainda mantém uma “referência” em usuário, isto é, na displaytags de listar usuários ele ainda consegue exibir o nome da profissão que foi excluída (!!!). Mas se eu acessar a tela de editar usuário, a profissão não estará na lista de profissões e eu vou ter que selecionar outra…

mar0580

Buenas!

Sei que este post é “antigo”, mas gostaria de saber como vc implementou a ação de deletar? estou implementando uma aplicação pro GAE mas não consigo deletar o registro persistido.

public void doPost(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {

        PersistenceManager pm = PMF.get().getPersistenceManager();

        String evento = req.getParameter("evento");

        String nome_cliente = req.getParameter("nome_cliente");
        
        String endereco_cliente = req.getParameter("endereco_cliente");

        Cadastro clientes = new Cadastro(nome_cliente, endereco_cliente, evento);

        if (evento == "Remover") {

            String query = "select from " + Cadastro.class.getName() + " where nomeCliente == " + nome_cliente;
            List<Cadastro> cadastro = (List<Cadastro>) pm.newQuery(query).execute();
        }

        try {
              pm.deletePersistent(clientes);

            } finally {
                pm.close();
            }
            resp.sendRedirect("/relatorio.jsp");
        }
    }

Poderia(m) me ajudar?

Criado 13 de novembro de 2010
Ultima resposta 31 de mai. de 2011
Respostas 3
Participantes 3