| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/02/2009 16:04:43
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
Como criar gatilhos no hibernate ?? a muito tempo atraz, navegando pelas classes do hibernate... vi que ele não salva diretamente os dados... que da um fire para os ouvintes e um dos ouvintes que salva os dados... é possivel então usar o recurso de triggers diretamente pelo hibernate ?? sem ter que escrevelas em um banco de dados ??
algo com c fosse Listners ??
This message was edited 1 time. Last update was at 18/02/2009 13:22:56
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/02/2009 16:23:55
|
LuksS
JavaTeenager
![[Avatar]](/images/avatar/e86fdb256522aa912cbff6c9ee251fa4.png)
Membro desde: 08/01/2008 10:55:41
Mensagens: 172
Offline
|
Vc pode usar o conceito de EventListeners. Dá uma olhada no pacote org.hibernate.event
|
http://lucassimao.wordpress.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/02/2009 16:50:55
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
apenas para exemplificar um dos Cases é esse abaixo, onde eu preciso construir a lista de produtos para lojas, e uma tabela de estoque, sempre que eu adcionar 1 produto, ou adcionar 1 loja ... queria fazer isso sem as Trigger do banco de dados... mas sim direatmente com códigos java
This message was edited 1 time. Last update was at 17/02/2009 16:51:26
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 17/02/2009 17:02:27
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
LuksS wrote:Vc pode usar o conceito de EventListeners. Dá uma olhada no pacote org.hibernate.event
1 duvida... onde eu injeto os Listners ?? na session ?? no sessionFactory ?? onde??
caso seja no Session, tenho que fazelo para cada sessão criada ?? ...
não achei os lugares para addOnDeleteListners... etc etc etc
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2009 08:50:27
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
procurei muito e so achei como fazer Interceptor... alguem sabe como fazer para adcionar um PreInsertEventListener por exemplo ??
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2009 08:56:32
|
LuksS
JavaTeenager
![[Avatar]](/images/avatar/e86fdb256522aa912cbff6c9ee251fa4.png)
Membro desde: 08/01/2008 10:55:41
Mensagens: 172
Offline
|
Mais ou menos assim:
|
http://lucassimao.wordpress.com/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2009 09:11:59
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
LuksS wrote:Mais ou menos assim:
...
vlw ^^ ... mais me diz 1 coisa... tem como eu adcionar um Listner so em uma classe ?? tipo com anotações ?? vi algo assim
nesse link aki http://www.hibernate.org/hib_docs/entitymanager/reference/en/html/listeners.html
poeram ele fala ali de Audit.class .... e não sei bem como ele vai chamar o LastUpdateListner ... o.O
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2009 10:39:05
|
Grinvon
GUJ Master
![[Avatar]](/images/avatar/aff0a6a4521232970b2c1cf539ad0a19.png)
Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline
|
Há os listeners do hibernate que usam as anotações:
@PrePersist
@PreUpdate
@PostLoad
@PostPersist
e aí vai.
Para fazer chamada a sua classe de listener, basta na sua classe de entidade chamar: @EntityListeners(MinhaClasseListener.class)
Onde MinhaClasseListener não precisa implementar nenhuma interface específica para se comportar como uma listener trigger de hibernate.
|
>> Inocêncio. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2009 11:03:17
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
Grinvon wrote:...
Para fazer chamada a sua classe de listener, basta na sua classe de entidade chamar: @EntityListeners(MinhaClasseListener.class)
Onde MinhaClasseListener não precisa implementar nenhuma interface específica para se comportar como uma listener trigger de hibernate.
como assim ?? e como ele vai chamar os métodos certos ??
como vou por exemplo implementar um Trigger de pré-insert por exemplo ?? ... teria como vc escrever um pequeno código de exemplo ?? ou me mostrar 1 ?
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2009 12:13:29
|
Grinvon
GUJ Master
![[Avatar]](/images/avatar/aff0a6a4521232970b2c1cf539ad0a19.png)
Membro desde: 18/08/2003 22:10:49
Mensagens: 1899
Localização: Em qualquer lugar
Offline
|
Você viu as anotações??
Elas são que mostram o status da chamada que você desejar.
Exemplo, quero que toda operação de persistência, depois de persistir, ele envie um email
- Na minha entidade eu faço ela enxergar a classe listener
@EntityListeners(MinhaClasseListener.class)
public class MinhaEntidade { ... }
Dessa forma "MinhaClasseListener" se comportarar como um trigger.
Dentro dessa classe eu faço as chamadas necessárias:
@PostPersist @PostUpdate
public void persistir(MinhaEntidade pEntidade) {
//rotina enviar email
...
}
|
>> Inocêncio. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 18/02/2009 13:21:33
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
Perfeito ^^ vlw... resolveu o problema ^^
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/02/2012 09:59:16
|
jingle
Virtual Machine Man
Membro desde: 04/10/2006 20:40:08
Mensagens: 642
Localização: Canoas/RS
Offline
|
Sei que tópico é de 2009 mas to precisando fazer exatamente isso e não estou conseguindo... não funciona mais os listeners?
tentei fazer exatamente como falaram:
mas nem se quer chamou o listner quando mandei dar save/update/remove.
|
|
|
 |
|
|