EJB3+View : Como?

10 respostas
Tchello

Boa tarde galera!

Esbarrei em um probleminha aqui num módulo…

Estou usando:
JSF 1.2
EJB 3
JBoss 4.2.2
NetBeans 6.5

Acontece que algumas entidades tem um campo inteiro indicando um registro em uma view.(como uma FK).
Mas como faço pra mapear essa view com EJB3?
Pesquisei no google mas ta difícil de encontrar alguma coisa.
Aqui no GUJ encontrei esse tópico:
http://guj.com.br/posts/list/126435.java#683078

Mas sinceramente não ajudou muito, não posso ficar usando HQL muito menos SQL nativa (esse último é praticamente fora de cogitação), queria poder usar Criteria =D
[color=darkred]Resumindo, minha dúvida é:
Mas como mapear a classe de entidade que represente uma view?[/color]

Abraços!

10 Respostas

nadilsons

Cara, dá uma olhada no jboss seam!
Com ele, você pode utilizar suas classes persistentes na view.

Tchello

Cara, acho que você não me entendeu.
To falando de view de banco de dados… capiche?

Abraços.

danieldestro

EJB 3 = JPA?

JPA não tem Criteria.

Tchello

Ok ok, desconsiderando o Criteria.
Como posso mapear uma view de bd com JPA?

Serei obrigado a usar HQL? ou SQL Nativo?

Abraços!

danieldestro

O problema das VIEWS de BD, é que, em geral, elas não possuem PK e FK. Já vi empresas que criam Views com PK e FK no Oracle.
Se você tiver um campo que seja a PK da “tupla”, você pode usar normalmente.

Tchello

Mas eu mapeio como uma entidade normal?
Usando as annotations @Entity E @Table?

É o meu caso. Usamos postgres aqui.

danieldestro

Isso, do mesmo modo.

No Postgres eu nçao sei, mas no Oracle, tanto uma tabela, quanto uma view você pode fazer um select normalmente.

select * from tabela_a;

select * from view_b;

Tchello

Mas se eu mapeio do mesmo modo que uma entidade de tabela provavelmente o Criteria vai se aplicar a esse caso também, correto?
Farei uns testes aqui e logo (segunda feira no caso) posto mais dúvidas =P

Muito obrigado!

danieldestro

JPA não tem Criteria. Hibernate tem!

Além do que, o mapeamento (ORM) é lógico e não físico.

Lavieri

bom nunca mapeie uma view… mas acho q seria uma boa marcar todos os campos com insertable e updatable false… afinal é uma view … e seu Objeto não deve ter métodos sets, pelomenos não publicos

Criado 15 de maio de 2009
Ultima resposta 15 de mai. de 2009
Respostas 10
Participantes 4