FindByExample com JPA  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
Ferryman
JavaGuru
[Avatar]

Membro desde: 26/10/2006 16:30:23
Mensagens: 220
Offline

Eai Pessoal,

Estou começando a brincar com JPA e preciso de ajuda. Alguem sabe como eu implemento um findByExample genérico com JPA?

Preciso que este método recebe uma instancia somente com alguns campos preenchidos, e recupere do banco todas as intancias com os valores iguais ao objeto de exemplo. Existe alguma maneira de fazer essa comparação?

estou seguindo nesta linha:


Estou recebendo uma a seguinte exceção:

Exception in thread "main" java.lang.IllegalStateException: org.hibernate.TransientObjectException: object references an unsaved transient instance - save the transient instance before flushing: br.com.educare.api.Especial

Acho que isso não está funcionando pois a query ira procurar uma instancia exatamente igual a que eu passei. Como eu posso driblar isso para que ele compare só com os campos que eu preenchi? Implemento isso no .equals() do objeto que será comparado?

Valeu pessoal

[]s
Ferry

Rafael Farias Silva (@rafaferry)

Jsigner - Engenharia reversa automática através do maven. Acesse http://code.google.com/p/jsigner
[Email] [WWW]
urubatan
Moderador
[Avatar]

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

se tu quer fazer consultas dinâmicas use Criteria e não concatenação de strings para montar um hql

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
mchiareli
JavaEvangelist
[Avatar]

Membro desde: 04/04/2006 15:14:50
Mensagens: 397
Offline

urubatan wrote:se tu quer fazer consultas dinâmicas use Criteria e não concatenação de strings para montar um hql


que não se encontra na espec da jpa....

This message was edited 1 time. Last update was at 04/09/2007 21:03:02


codifica.wordpress.com
[WWW] [MSN]
Ferryman
JavaGuru
[Avatar]

Membro desde: 26/10/2006 16:30:23
Mensagens: 220
Offline

Pois é...

Gostaria mesmo de usar critéria, estou até pensando em voltar pra hibernate e esperar implementarem criteria em jpa.

Mas usando jpa, tem como fazer o que eu preciso?

Valeu
[]s


Rafael Farias Silva (@rafaferry)

Jsigner - Engenharia reversa automática através do maven. Acesse http://code.google.com/p/jsigner
[Email] [WWW]
Ferryman
JavaGuru
[Avatar]

Membro desde: 26/10/2006 16:30:23
Mensagens: 220
Offline

Pessoal,

Acabei de ler a spec e lá diz que quando eu comparo objetos eles só são iguais se a primaryKey for a mesma... então acredito que implementar um equals no objeto que só compara os valores preenchidos nao vai adiantar.
Assim não sei se da pra implementar um findByExample genérico com jpa.

Como estou usando a implementação do Hibernate vou apelar. Eu sei as desvantagens de fazer isso, mas até sair a implementação da spec de JPA que tem Criteria vou ser obrigado a usar a Session do hibernate neste método.

Só pra deixar aqui exemplo de como se faz isso:



Espero que isto ajude alguem.

Se souberem de uma solução melhor por favor me digam.

[]s
Ferry


Rafael Farias Silva (@rafaferry)

Jsigner - Engenharia reversa automática através do maven. Acesse http://code.google.com/p/jsigner
[Email] [WWW]
andre_salvati
GUJ Ranger

Membro desde: 02/06/2005 16:28:38
Mensagens: 939
Offline


Baixe o CaveatEmptor, aplicação referência que demonstra o uso do Hibernate...

http://www.hibernate.org/400.html

This message was edited 1 time. Last update was at 05/09/2007 19:51:34


Ajude na criação do StackOverflow em português!!!

http://area51.stackexchange.com/proposals/23539/software-development-in-portuguese?referrer=tI8Uon7RDszY236h5e0UuA2


http://www.empresadigital.inf.br
http://twitter.com/afsalvati
Ferryman
JavaGuru
[Avatar]

Membro desde: 26/10/2006 16:30:23
Mensagens: 220
Offline

Valeu pela dica Taz,

Bom a implementação de findByExample no exemplo de JPA ta similar a minha... eles acabaram usando a implementação do hibernate tbm somente neste caso.

falou
[]s

Rafael Farias Silva (@rafaferry)

Jsigner - Engenharia reversa automática através do maven. Acesse http://code.google.com/p/jsigner
[Email] [WWW]
 
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team