Generic DAO  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
peron
JavaGuru
[Avatar]

Membro desde: 09/06/2005 09:39:31
Mensagens: 234
Localização: Blumenau/SC
Offline

Caros,

Estou implementando um DAO Genérico, porém tenho algumas dúvidas que não encontrei, nem no fórum nem pela web.

Bom, li estes links:

http://www.hibernate.org/328.html
http://www-128.ibm.com/developerworks/java/library/j-genericdao.html
http://aujava.wordpress.com/2006/08/09/generic-dao-and-more/
http://www.dhptech.com/node/18
http://www.java2s.com/Code/Java/Hibernate/GenericDaoCreate.htm

e fiz uma implementação de um DAO Genérico, que vos passo:



e uma implementação usando hibernate:




Bom, se eu tiver então um Bean chamado de Bean:



e o Bean Person que estende pessoa:



Bom, agora implementando um DAO para cada um, usando da herança, eu faria:







Ok, até ai tudo bem. isso funciona maravilhosamente BEM.

Porém, se eu criasse outro Bean que estende Person, como Student, e eu quisesse Herdar também os dados da interface PersonDAO, como faria?
Lembrando que eu já passei o tipo para o Generics acima (<Person>.

Bom, eu poderia na interface PersonDAO, fazer assim:



e a interface do Student




E na inicialização a minha implementação criar StudentDAO<Student> pd = new StudentDAOImpl<Student>();

mas quando rodo, essa parte da implementação do hibernate dá erro:



Porém, se eu fizesse a interface de Student já vir tipada o Generics, ia funcionar numa boa.

Então minha dúvida é essa, como fazer para não perder a possibilidade de herdar também os DAOs Genéricos e pais, sem ter que determinar um tipo no ultimo DAO.

Será que me fiz entender?

Se algúem tiver alguma luz..

Obrigado

Abraços

Marcos Peron
http://www.marcosperon.com





"Dizem que, no início, Deus criou o céu e a Terra. Mentira! Na verdade, no início Deus criou Java. Onde achas que ele programou o mundo, oras?"
[WWW] [Yahoo!] [MSN] [ICQ]
juniorsatanas
Virtual Machine Man
[Avatar]

Membro desde: 20/05/2007 01:08:24
Mensagens: 646
Localização: web2ajax@gmail.com
Offline

NO MEU BLOG TU ENCONTRA ISSO:

http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/

web2ajax@gmail.com
joseribamar.ferreira@previdencia.gov.br

E assim falou Zarathustra ao povo:

"Mostro-vos o super-homem. O homem é algo que deve ser sobrepujado. Que tendes feito para sobrepujá-lo ? "Todos os seres até hoje criaram alguma coisa superior a si mesmos; e vós quereis ser o refluxo deste grande fluxo e até mesmo retroceder às bestas, em vez de superar o homem?"

Friedrich Nietzsche, "Prólogo de Zarathustra" Assim falou Zarathustra (1883)
[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3654
Localização: João Pessoa, Paraíba - Brasil
Offline

juniorsatanas wrote:NO MEU BLOG TU ENCONTRA ISSO:

http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/


Seu blog?

Blog pt-br | Blog en | My Last.fm | Blog de RPG
----------------------------------------
PBJUG - Grupo de Usuários Java da Paraíba | Paraíba.rb - Paraíba Ruby Brigade
How do we tell truths that might hurt?
[WWW] [MSN]
peron
JavaGuru
[Avatar]

Membro desde: 09/06/2005 09:39:31
Mensagens: 234
Localização: Blumenau/SC
Offline

O Exemplo é bom, mas eu gostaria de poder fazer assim:



e em tempo de execução pegar Person no HibernateAbstractDAO.

Assim eu poderia fazer que HibernatePersonDAO extendesse HibernateBeanDAO e teria um DAO Genérico e acima de tudo, com herança dos metodos de acesso ao banco de dados, já que Person é um Bean.

Isso fica mais prático quando eu criar um HibernateStudentDAO que extende HibernatePersonDAO, pois eu poderia ter um getStudentForClass no StudentDAO mas ele herdaria o getPersonByFirstName do PersonDAO, afinal, Student é um Person.

me fiz entender?

O Problema é que se eu manter o Generic até a ultima classe, esse código:



retorna o erro:



sendo que TestAll é:


alguma idéia?

Grato desde já

Marcos Peron
http://www.marcosperon.com





"Dizem que, no início, Deus criou o céu e a Terra. Mentira! Na verdade, no início Deus criou Java. Onde achas que ele programou o mundo, oras?"
[WWW] [Yahoo!] [MSN] [ICQ]
Tecnoage
Forum Spammer

Membro desde: 13/03/2005 23:18:07
Mensagens: 1711
Localização: SP
Offline

Maurício Linhares wrote:
juniorsatanas wrote:NO MEU BLOG TU ENCONTRA ISSO:

http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/


Seu blog?


como assim meu blog???

Arquiteto de Software
Sysped Solutions
R3 SAP CAT-83, NF-e, ECD, EFD, CT-e, MANAD, IN86
www.sysped.com.br
[Email] [WWW] [MSN]
Giulliano
Forum Spammer
[Avatar]

Membro desde: 14/11/2006 19:29:38
Mensagens: 1278
Localização: São Paulo
Offline

juniorsatanas wrote:NO MEU BLOG TU ENCONTRA ISSO:

http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/


MUITO PRAZER SENHOR URUBATAN...É UMA HONRA CONHECE-LO.....



Sun Certified Java Programmer 5
Sun Certified Enterprise Architect (estudando...)
GiuLLianO MoRRoNi




<UnTouChAbLe>
[Email] [WWW] [MSN]
neohacker
Virtual Machine Man
[Avatar]

Membro desde: 30/10/2006 15:23:14
Mensagens: 576
Localização: Santo André
Offline

juniorsatanas wrote:NO MEU BLOG TU ENCONTRA ISSO:

http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/


Afffff.....que lixo de pessoa, você deveria sentir

Plagio na cara larga...

Receba todo o ódio do GUJ


http//www.tecnologiaims.blogspot.com

↑ Grab this Headline Animator

http://www.imstechnology.blogspot.com
[Email] [WWW]
Alexandre Ferreira
Virtual Machine Man
[Avatar]

Membro desde: 20/09/2006 20:07:03
Mensagens: 515
Localização: Rio de Janeiro
Offline

juniorsatanas wrote:NO MEU BLOG TU ENCONTRA ISSO:

http://www.urubatan.com.br/2006/12/27/dao-generico-um-exemplo-a-pedidos/

SEU BLOG?

Que moleque sujo... hehehehe

Deve ser aquelas crianças contadora de historia e mentirosa...
Que feio isso!!!

NO MEU BLOG...
foi ótimo....!

Alexandre Ferreira
Blog: http://alexandreferreira.com.br
[Email] [WWW] [MSN]
RaulCarlin
JavaEvangelist
[Avatar]

Membro desde: 20/05/2005 12:58:30
Mensagens: 389
Localização: São Paulo
Offline

juniorsatanas wrote:
NO MEU BLOG TU ENCONTRA ISSO:


Tsc tsc tsc... cade o VERDADEIRO dono do blog pra ler isso?
[WWW]
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2449
Localização: Porto Alegre/RS
Offline

to aqui

valeu pelo link hehehehe

mas chegar se adonando do blog assim ...
só falta aparecer um post la que não foi escrito por mim agora
hehehe

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br - pt_BR
http://www.urubatan.info - en_US
Arquiteto J2EE
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
maquiavelbona
Forum Spammer
[Avatar]

Membro desde: 29/06/2006 09:06:51
Mensagens: 2444
Localização: São Paulo - SP
Offline

Merece um L.A.I. ( Losango Aberto Invertido ).
Tomando coisas dos outros, que feio...

----------------------------------------------------------------
"Within a few years a simple and inexpensive device, readily carried about, will enable one to receive on land or sea the principal news, to hear a speech, a lecture, a song or play of a musical instrument, conveyed from any other region of the globe. "
Nikola Tesla - A means for furthering Peace (1905)

"Gedanken ohne Inhalt sind leer, Anschauungen ohne Begriffe sind blind."
Immanuel Kant - Kritik der reinen Vernunft (1781)
juniorsatanas
Virtual Machine Man
[Avatar]

Membro desde: 20/05/2007 01:08:24
Mensagens: 646
Localização: web2ajax@gmail.com
Offline



EU SEMPRE VOU LÁ ESTUDAR, LER ETC..

ISSO ME DA O DIREITO DE CHAMAR DE MEU !HAHAHHAHAH

urubatan , É UM PROGRAMADOR EDUCADO E SABE QUE FOI SÓ UMA BRINCADEIRA !

QUASE QUE EU FUI EXPULSO DO GUJ HAHAHHAHHAH




web2ajax@gmail.com
joseribamar.ferreira@previdencia.gov.br

E assim falou Zarathustra ao povo:

"Mostro-vos o super-homem. O homem é algo que deve ser sobrepujado. Que tendes feito para sobrepujá-lo ? "Todos os seres até hoje criaram alguma coisa superior a si mesmos; e vós quereis ser o refluxo deste grande fluxo e até mesmo retroceder às bestas, em vez de superar o homem?"

Friedrich Nietzsche, "Prólogo de Zarathustra" Assim falou Zarathustra (1883)
[Email] [WWW] [Yahoo!] aim icon [MSN] [ICQ]
benflodin
JavaTeenager
[Avatar]

Membro desde: 04/06/2006 13:50:18
Mensagens: 152
Offline

flamess flamesss ea resposta nada!

think Java
[WWW] [MSN]
Mark_Ameba
Forum Spammer
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 3080
Localização: São Paulo/SP
Offline

juniorsatanas wrote:

EU SEMPRE VOU LÁ ESTUDAR, LER ETC..

ISSO ME DA O DIREITO DE CHAMAR DE MEU !HAHAHHAHAH

urubatan , É UM PROGRAMADOR EDUCADO E SABE QUE FOI SÓ UMA BRINCADEIRA !

QUASE QUE EU FUI EXPULSO DO GUJ HAHAHHAHHAH





Sendo assim.

Aew povo.. cuidado com o MEU GUJ. o MEU HOTMAIL.
Parem de estudar o MEU JAVA.

Só seus argumentos não é o suficiente para dizer que algo é seu.



@benflodin
Cara.. seu nome me da medo.. aquelas pilulas loucas o.0

This message was edited 1 time. Last update was at 07/05/2009 13:39:50





Trabalhe com JTable de uma forma inteligente com o ObjectTableModel e com o Auto-Filtro!

Tower Defense Game - Source Code liberado! - RC 2 09/02/2010
MarkyBlog: http://markyameba.wordpress.com : Swing, Hibernate, Java 2D e Reflection.

Faça perguntas inteligentes
Programar telas Swing na mão nunca foi tão fácil: MigLayout!
Totalmente GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

It's more useful to have a fun game with old graphics, than a boring game with good graphics.

Quer aprender a fazer jogos? : Créditos ao ViniGodoy

Each of their nuggets of wisdom contracted to a sound bite:

Joshua Bloch: Write Lots of Code
Chet Haase: Don't Put Your Entire Application in One Method
Masood Mortazavi: Start Simple and Keep Learning
Cay Horstmann: First, Don't Panic
[WWW] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17373
Localização: SP
Offline

Vou fechar isso.
Pior que flame war é flame war ressuscitada; não sei como é que o pessoal encontra essas velharias.
(É claro que sei que é pelo Google, mas acho absurdo o cara não perceber que a discussão morreu há muito tempo).
[WWW]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team