| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2006 09:56:08
|
wmarinheiro
Entusiasta Java
![[Avatar]](/images/avatar/7a9aa819c5733930f0df26f4c3e0e4ff.jpg)
Membro desde: 11/11/2006 21:38:18
Mensagens: 19
Offline
|
Caros amigos,
Eu tenho um sistema onde tem uma classe abstrata somente contendo o campo de identificação do USUARIO e a DATA, todas as demais tabelas herdam dela.
Como fazer o mapeamento no hibernate utilizando o tipo tabela concreta, pois todas tabelas incluirão o campo Usuario e Data
Vejam uma parte da classe abstrata:
(ela contem todos os metodos get e set´s)
Uma das classes herdeiras:
Na base de dados eu devo armazenar os seguintes campos na tabela Usuarios:
usCod
usSenha
usNome
ID_Usuario
ID_Data
Wellington Marinheiro
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2006 11:37:38
|
Avante
Debugger
Membro desde: 15/01/2004 09:29:01
Mensagens: 53
Localização: Bauru SP
Offline
|
Olá..
Pq vc não faz diferente? Ao invés de uma classe abstrata que vc estenderia, crie uma classe normal e nas demais classe faça uma composição com ela.
Dê uma olhada em http://www.hibernate.org/hib_docs/annotations/reference/en/html/entity.html#d0e492
Abraços
|
------------------------------------
Danilo Carlos Avante
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2006 11:39:25
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
Wellington, você precisa guardar quem fez a última alteração em cada registro de cada tabela to sistema? Se é isso é extremamente mais simples realizar esta tarefa utilizando um Interceptor.
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2006 13:08:27
|
wmarinheiro
Entusiasta Java
![[Avatar]](/images/avatar/7a9aa819c5733930f0df26f4c3e0e4ff.jpg)
Membro desde: 11/11/2006 21:38:18
Mensagens: 19
Offline
|
LIPE wrote:Wellington, você precisa guardar quem fez a última alteração em cada registro de cada tabela to sistema? Se é isso é extremamente mais simples realizar esta tarefa utilizando um Interceptor.
Ola LIPE,
A idéia é exatamente esta, para cada registro novo, fica registrado o Usuário que o fêz e a data (que pega do sistema). Este procedimento se aplica às demais tabelas que temos no sistema.
Vale salientar que quando tentei fazer o rmapeamento e não citei a clase IdDATA, o sistema não reconheceu os campos IDUSUARIO e IDDATA.
Por favor, me ajusde...
Wellington Marinheiro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2006 14:04:33
|
Filipe Sabella
GUJ Expert
Membro desde: 12/03/2003 11:25:57
Mensagens: 4680
Offline
|
Antes de mais nada é uma má prática utilizar herança apenas para evitar digitação.
Contudo, fiz um exemplo aqui para funcionar em seu cenário. Ele foi escrito para Hibernate 2.x, portanto provavelmente terá que fazer alguma alteração para trabalhar com Hibernate 3.x.
MyInterceptor.java
Para usar adicione o seguinte no local onde instancia a Session:
Recomendo também a leitura das convenções de código para Java:
http://java.sun.com/docs/codeconv/
|
Former LIPE. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/11/2006 18:21:50
|
wmarinheiro
Entusiasta Java
![[Avatar]](/images/avatar/7a9aa819c5733930f0df26f4c3e0e4ff.jpg)
Membro desde: 11/11/2006 21:38:18
Mensagens: 19
Offline
|
Caro LIPE,
Agora fiquei perdido de vêz, tentei entender mas, sinceramente, não consegui captar a funcionalidade da classe MyInterceptor.
Na realidade eu não estou conseguindo fazer o mapeamento da minha classe usuário em funcao da classe IdDATA, que é abstrata mas preciso inserir os dois campos que a classe usuário herada dela na base de dados. !! eu só queria isto !!
Tambem estou correndo atrás de como criar um Criteria onde cheque o login, passando-se o LOGIN e SENHA.
O grande problema é o seguinte; Este é um sistema para conclusão do curso, já está todo rodando pelas vias normais, com repositorios acessando base de dados MySql, tudo beleza!! O professor simplesmente achou que deveriamos incluir novas tecnologias e aí me deparei com este grante problema HIBERNATE que pode vir até facilitar a vida futuramente mas que, para começar, arranha prá caramba...
Desde já, muito grato,
Wellington Marinheiro
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 30/11/2006 20:06:09
|
felipesp
Debugger
![[Avatar]](/images/avatar/c9efe5f26cd17ba6216bbe2a7d26d490.jpg)
Membro desde: 14/04/2004 14:16:52
Mensagens: 69
Localização: São Paulo
Offline
|
Bem, neste caso você deveria ter dito ao professor que o seu programa está ficando pronto, mas que ainda falta um bom tanto para ficar pronto.
Daí ao invés de implementar linguiça você estaria tomando um sorvete
|
Felipe S. Gomes
phillmelon@gmail.com
http://felipe.blog.br/ |
|
|
 |
|
|