View em JPA

8 respostas
L

Galera como se faz para utilizar uma view wm JPA alguem tem um exemplo? Naum axei nada no google.
Obrigado.

8 Respostas

J
Olá amigo pra se utilizar view em JPA é necessario se ter uma Entity persistente com os campos da sua view como se fosse uma Entity normal de uma tabela do seu banco de dados. Caso vc utilize o Netbeans como IDE de desenvolvimento ja deve saber que ele gera as Entitys automaticamente! E ele tbm gera automaticamente uma Entity pra cada view criada no banco. Dai é so chamar assim oh:
public static List ConsultarViewTeste() throws Exception {
        EntityManager manager = null;
        String ejbql = "SELECT V from ViewTeste V";

        try {
            manager = Conexao.getConexao();
            manager.getTransaction().begin();
            Query query = manager.createQuery(ejbql);
            manager.getTransaction().commit();
            List<ViewTeste> listaViewTeste = query.getResultList();
            return listaViewTeste;
        } catch (Exception e) {
            manager.getTransaction().rollback();
            throw new Exception(e);
        }
    }
L

ok,obrigado.
Mas tenho uma duvida meu mapeamento esta sendo exportado automaticamente para o banco, com update=true,se eu criar a entity ele vai criar uma table ou uma view no banco?
T+.

J

Brother, aqui nós utilizamos funções do próprio banco de dados, exemplo:

Vc tem uma tabela física CLIENTE

Vc tem uma view da tabela CLIENTE, sendo CLIENTE01

Na entidade deixo mapeada com a tabela física, quando realizo o sql o próprio banco de dados pesquisa a view definida, entende?

O banco de dados gerencia isso pra vc.

I

Infelizmente vai criar uma table…

L

é obrigatorio criar um id?
Aqui fiz a tabela e criei uma visao dela porem me da erro no nome das colunas diz que a coluna nao existe,o que pode ser?
Obrigado.

J

É obrigadorio vc criar id, sendo que se o seu id ou “chave” for composta, deverá criar outra classe e utilizar a anotação @IdClass

Dúvidas ?

J

Como disse, pra que criar uma view no java ? pq não cria no banco de dados e ele gerencia isso pra vc, vc apenas pode indicar no seu select o “from” pra sua view, só isso

J

Concordo com o jonimca e é exatamente como ele disse que eu faço.

Ex: Vc tem as Tabelas cidade e estado no banco.

Cidade
id
idEstado
nome

Estado
id
nomeEstado

Vc cria uma view no seu banco que traga as seguintes informações:

View
id
nome
nomeEstado

Por padrão vc tera uma Entity para a Tabela Cidade e outra Para Estado, sendo assim tera quer fazer uma para View. Observação como eu havia dito o netbeans ja gera tanto as Entitys das Tabelas no banco quando das Views. dai no seu ejbql é fazer assim oh:

E vc ja tera os seguintes campos.
id
nome
nomeEstado

Abraço.

Criado 13 de maio de 2009
Ultima resposta 13 de mai. de 2009
Respostas 8
Participantes 4