Hibernate e JPA por que?  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
wellington.nogueira
GUJ Ranger
[Avatar]

Membro desde: 11/08/2006 11:29:56
Mensagens: 914
Localização: Osasco-SP
Offline

Hmm... dei uma olhada no teu exemplo, e acho que entendi o que você fez. Só achei que tudo ficou um pouco espalhado demais. Para sistemas pequenos é tranquilo e até para sistemas médios pode ser controlável, mas a medida que um sistema cresce, pode-se criar uma dificuldade bem indesejável.

No construtor das classes que herdam de Alias, tentaria fazer algo com reflection para evitar o mapeamento que seria obrigado a fazer ali (ou melhor, transferiria essa responsabilidade para o construtor do Alias).

57 45 4C 4C 49 4E 47 54 4F 4E
Você é novo no GUJ? Vai criar um tópico e colar seu código-fonte? Leia aqui antes, por favor!
"Se você acha que programar em Java com Swing é simples? Acredite em mim, não é!"
http://developmentforever.wordpress.com/
Luiz Augusto Prado
JavaEvangelist
[Avatar]

Membro desde: 20/02/2008 23:02:08
Mensagens: 430
Localização: Brasília
Offline

wellington.nogueira wrote:Hmm... dei uma olhada no teu exemplo, e acho que entendi o que você fez. Só achei que tudo ficou um pouco espalhado demais. Para sistemas pequenos é tranquilo e até para sistemas médios pode ser controlável, mas a medida que um sistema cresce, pode-se criar uma dificuldade bem indesejável.

No construtor das classes que herdam de Alias, tentaria fazer algo com reflection para evitar o mapeamento que seria obrigado a fazer ali (ou melhor, transferiria essa responsabilidade para o construtor do Alias).


Eu mudei um pouco os metodos. Vi que existiam algumas redundancias e resolvi tirar.
Existem 2 formas de se utilizar o SQL:
pela criação de um novo Context - ideal para obter listas e campos específicos. Exemplo visto no metodo mostrar_todos
apartir de algum aliase - aqui trabalhamos com objetos das entidades. com um UsuarioAliase podemos realizar um CRUD em uma tabela Usuario.

Não existe Lazzy ou Eager, por enquanto.
Usuo o setAutoCommit nas transações.






Eu aproveito que por reflection podemos ler também uma interface e desta foma fazer o mapeamento:




Postei um PDF para outros detalhes.

Os VOs e os VoAliases não precisam nem ser vistos.
Só é necessario escrever as interfaces com os mapeamentos e suas classes de negocios.
O mapeamento ficou isolado na interface enquanto seus VOs são gerados sem nenhuma annotation.
Fica a seu criterio inserir annotations ou não em seus VOs.

respondendo a sua pergunta anteriror...
é apartir da alias_Usuario que pego o nome dos campos que preciso em um select:


Desta forma o autocompletar me ajuda muito na hora de pegar os campos que preciso

Por favor, não se incomode em levantar criticas (boas ou ruim).
Para mim elas serão muito contrutivas se existirem um "porque".
Por eu ter experiência em muitas linguagens as vezes esqueço as normas
de escrita do java, por isso, se encontrar algo que poderia ficar melhor, por favor me mostre.

Quando se acostuma com um perfume não se sabe que ele não agrada a todos até que nos alertem

 Nome do arquivo littleOrm.pdf [Disk] Download
 Descrição
 Tamanho 386 Kbytes
 Baixado:  33 vez(es)


Alfabetizador Orelha: http://www.codigorapido.com.br/alfa/palcosalfa.html
Meu ORM em java: http://www.guj.com.br/java/257619-meu-pequeno-orm-em-java-inspirado-no-linq-to-sql
Blog: http://ideiasdeprogramacao.blogspot.com/
Geometria Euclidiana Plana com cálculo proposicional


"Onde não ha verdade não ha sociedade." (Luiz Augusto Prado)
Evite o mal, faça o bem e cultive a mente
Atos 2:44-46

VEJAM ISSO!!!
Vídeo censurado no Brasil
[Email] [WWW]
Luiz Augusto Prado
JavaEvangelist
[Avatar]

Membro desde: 20/02/2008 23:02:08
Mensagens: 430
Localização: Brasília
Offline

O que a curiosidade não nos leva a fazer heim?

This message was edited 1 time. Last update was at 08/11/2011 21:07:42


Alfabetizador Orelha: http://www.codigorapido.com.br/alfa/palcosalfa.html
Meu ORM em java: http://www.guj.com.br/java/257619-meu-pequeno-orm-em-java-inspirado-no-linq-to-sql
Blog: http://ideiasdeprogramacao.blogspot.com/
Geometria Euclidiana Plana com cálculo proposicional


"Onde não ha verdade não ha sociedade." (Luiz Augusto Prado)
Evite o mal, faça o bem e cultive a mente
Atos 2:44-46

VEJAM ISSO!!!
Vídeo censurado no Brasil
[Email] [WWW]
rogelgarcia
GUJ Master
[Avatar]

Membro desde: 21/06/2007 23:27:21
Mensagens: 1850
Offline



Mas por questão de gosto pessoal, eu perfiro utilizar algo mais simples e menos dependente como
JDBC.


Acho que você está se contradizendo na sua proposta de não usar Hibernate ou JPA.

Onde está o JDBC e onde está o simples no código?

Rógel Garcia, criador do framework NEXT

http://www.nextframework.org
Luiz Augusto Prado
JavaEvangelist
[Avatar]

Membro desde: 20/02/2008 23:02:08
Mensagens: 430
Localização: Brasília
Offline

rogelgarcia wrote:

Mas por questão de gosto pessoal, eu perfiro utilizar algo mais simples e menos dependente como
JDBC.


Acho que você está se contradizendo na sua proposta de não usar Hibernate ou JPA.

Onde está o JDBC e onde está o simples no código?


Tá aqui :
Eu mudei um pouco os metodos. Vi que existiam algumas redundancias e resolvi tirar.
http://www.guj.com.br/posts/downloadAttach/7496.java
http://www.codigorapido.com.br/testeOrm.zip

Alfabetizador Orelha: http://www.codigorapido.com.br/alfa/palcosalfa.html
Meu ORM em java: http://www.guj.com.br/java/257619-meu-pequeno-orm-em-java-inspirado-no-linq-to-sql
Blog: http://ideiasdeprogramacao.blogspot.com/
Geometria Euclidiana Plana com cálculo proposicional


"Onde não ha verdade não ha sociedade." (Luiz Augusto Prado)
Evite o mal, faça o bem e cultive a mente
Atos 2:44-46

VEJAM ISSO!!!
Vídeo censurado no Brasil
[Email] [WWW]
marciobarroso
Virtual Machine Man
[Avatar]

Membro desde: 13/05/2005 23:17:13
Mensagens: 508
Localização: Barueri / SP / BR
Offline

Luiz,

Acho que a iniciativa de criar algo das proporções que você esta tentando é válida quando se tem um propósito específico.

Eu já fiz algo parecido também a alguns anos, e o propósito que eu tinha era unicamente entender melhor como estes fw de orm trabalhavam ... o objetivo era unicamente educacional.

Sobre o JPA e Hibernate, acho que não é por marketing ou qq outra estratégia que são bem utilizados e conhecidos. E sim porque a JPA é uma especificação oficial ( originado da JSR 317 ) que por sua vez, foi idealizado com a mesma direção do hibernate e também pelos mesmo idealizadores.

Acho que a adoção deste conjunto começa por ai ...

Boa sorte no seu projeto =)
[Email] [WWW] [MSN]
Luiz Augusto Prado
JavaEvangelist
[Avatar]

Membro desde: 20/02/2008 23:02:08
Mensagens: 430
Localização: Brasília
Offline

marciobarroso wrote:Luiz,

Acho que a iniciativa de criar algo das proporções que você esta tentando é válida quando se tem um propósito específico.

Eu já fiz algo parecido também a alguns anos, e o propósito que eu tinha era unicamente entender melhor como estes fw de orm trabalhavam ... o objetivo era unicamente educacional.

Sobre o JPA e Hibernate, acho que não é por marketing ou qq outra estratégia que são bem utilizados e conhecidos. E sim porque a JPA é uma especificação oficial ( originado da JSR 317 ) que por sua vez, foi idealizado com a mesma direção do hibernate e também pelos mesmo idealizadores.

Acho que a adoção deste conjunto começa por ai ...

Boa sorte no seu projeto =)


Olá Marciobarroso!

Muito obrigado pelas dicas.
Claro que tenho um proposito especício. Um deles é o estudo.
Conheço que JPA já possui Criteria.
Perdoem-me se eu falar bobeira aqui e se eu falar, por favor me corrijam.
Mas em se tratando de Hibernate e JPA ainda não consegui entender algumas coisas e acho estranho outras, como por exemplo:
Por que para a criação de chaves compostas temos que ter uma classe aparte (Embeddable) da tabela ?


Pra mim esse é o exemplo mais estranho que vejo:





Outra coisa é por exemplo um select:





Veja que a minha query é construida com strings: "new Grupo(id,nome)"
Aqui o id e o nome são string que só serão verificadas quando o programa for testado.
Suponha que vc escreva "nomee" e não ve o erro.

Minha tentativa é excluir essas strings da construção das queries. Isso é possivel em JPA e Hibernate?
Se for, por favor, me mostre o link que quero aprender como fazer isso.

Outro exemplo de select:
http://www.guj.com.br/java/234333-problema-com-select-jpa
veja
"SELECT usuario, senha FROM Usuario WHERE usuario = :usuario and senha = :senha"

Esse exemplo é muitissimo legal:
http://blog.werneckpaiva.com.br/2012/01/queries-com-a-nova-jpa2-criteria-api/
Mas ainda existem as strings como nome de campos.
Exemplo. Procure a linha :
builder.gt(from.get("price"), price)

String "price"

[]'s


This message was edited 1 time. Last update was at 28/01/2012 19:12:59


Alfabetizador Orelha: http://www.codigorapido.com.br/alfa/palcosalfa.html
Meu ORM em java: http://www.guj.com.br/java/257619-meu-pequeno-orm-em-java-inspirado-no-linq-to-sql
Blog: http://ideiasdeprogramacao.blogspot.com/
Geometria Euclidiana Plana com cálculo proposicional


"Onde não ha verdade não ha sociedade." (Luiz Augusto Prado)
Evite o mal, faça o bem e cultive a mente
Atos 2:44-46

VEJAM ISSO!!!
Vídeo censurado no Brasil
[Email] [WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team