| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 08:09:12
|
andre_bento
JavaGuru
Membro desde: 07/06/2007 12:56:10
Mensagens: 215
Offline
|
Olá amigos, acabei de fechar um tópico relacionado a minha JTable onde pegava os dados.
É o seguinte, eu peguei em minha table um campo onde armazenei em um array de Strings.
No meu caso o campo Itens Retirados eu guardei em um Strin[] itensRetirados.
Até ae tudo beleza... setei meu list<MeuModelo> e tudo legal.
Mas como eu faço para salvar no BD um array de Strings com o Hibernate.
Ele está dando erro no mapeamento dizendo que é impossível fazer o cast de String para String[].
Os amigos tem alguma idéia de como eu posso fazer, estive olhando aqui no fórum e alguns amigos não aconselham gravar arrays de String no BD... qual seria a outra alternativa?
Modelo.hbm.xml
Método que enche a list retornando um Object (está em meu modelo dá Table)
Tela onde encho o array:
Um forte abraço a todos!
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 08:28:52
|
alex.brito
JavaChild
Membro desde: 26/05/2009 07:39:01
Mensagens: 113
Offline
|
Opa, bom dia Andre.
Então cara, essa sua coluna itensretirados está como no banco ?? varchar ??
Tipo, para mapear um array, você deveria utilizar a tag <array> dentro do seu hbm.xml. Mas se não me engano, isso representa um relacionamento one-to-many ou many-to-one. Não sei se é o seu caso.
Se voce tem um array te itens retirados e deseja salvar em uma única coluna, acho que você deve pensar em utilizar uma string com um delimitador
Ex. Item1;Item2;Item3 - Tudo isso é uma unica String.
Depois você poderia transforma-la em array novamente, separando pelo delimitador ";".
Não sei se é isso. Mas em todos os casos, se você quiser tentar utilizar a tag <array> dá uma olhada http://helpdesk.objects.com.au/java/how-to-map-an-array-using-hibernate
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 08:30:52
|
Jair Rillo Junior
Moderador
![[Avatar]](/images/avatar/31b3b31a1c2f8a370206f111127c0dbd.jpg)
Membro desde: 29/04/2003 21:19:53
Mensagens: 2524
Localização: São Paulo / Campinas
Offline
|
Nunca precisei fazer, mas uma rapida procurada no google eu achei http://www.java2s.com/Code/Java/Hibernate/CollectionMappingArray.htm
Porém, ao invés de gravar tudo como array de String em um campo da tabela, porque não usar o método tradicional, que é criar uma segunda tabela e fazer um relacionamento ManyToOne. Usando hibernate isso vai ficar bastante simples de fazer
|
Jair Rillo Junior
http://www.jairrillo.com/blog | Twitter | SCJA, SCJP, SCWCD, SCBCD, IBM SOA Associate |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 08:31:34
|
alissonvla
GUJ Master
Membro desde: 17/04/2006 15:29:07
Mensagens: 1491
Offline
|
cara,
não faz desse jeito, crie uma tabela para esse seu caso, vai ficar dentro da forma normal de BD e alem disso, se vc precisar realizar alguma consulta para em cima desse dados do jeito que vc ta querendo nao vai ter jeito.
t+
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 08:52:05
|
andre_bento
JavaGuru
Membro desde: 07/06/2007 12:56:10
Mensagens: 215
Offline
|
Olá amigos.
Eu estou querendo fazer desse jeito mesmo... mas estou tendo dificuldades.
Tipo...
Eu configuerei desse jeito:
E aqui:
Dessa maneira:
Então minha classe SaidaPatrimonio.hbm.xml ficou assim:
Mas quando tento apenas abrir minha tela ele dá erro dizendo: could not parse mapping document from resource Mode/SaidaPatrimonio.hbm.xml
O que posso estar fazendo de errado??
Me ajuuudem!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 08:54:09
|
alissonvla
GUJ Master
Membro desde: 17/04/2006 15:29:07
Mensagens: 1491
Offline
|
cara,
vc ja pensou qdo vc for fazer alguma consulta com esses dados?
t+
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 08:57:09
|
andre_bento
JavaGuru
Membro desde: 07/06/2007 12:56:10
Mensagens: 215
Offline
|
Olá amigo.
Estou pensando cara, por isso to precisando da ajuda de vcs...rsrrs
Não tenho muitoa experiência com o hibernate, por isso que aprender com os amigos qual a melhor maneira pra depois não ter que ficar alterando tudo entende?
Como os amigos fariam nesse caso?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 09:03:42
|
alissonvla
GUJ Master
Membro desde: 17/04/2006 15:29:07
Mensagens: 1491
Offline
|
cara,
isso nao é problema de hibernate, isso vai ser problema de relacionamento do seu banco. como eu te disse seria melhor vc criar uma tabela para esse caso.
t+
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 09:06:12
|
andre_bento
JavaGuru
Membro desde: 07/06/2007 12:56:10
Mensagens: 215
Offline
|
Olá alissonvla.
Criei essa tabela cara, mas não estou conseguindo obter êxito no relacionamento, entende?
E também não imagino como ficaria o insert nela... Eu criei a tabela com os campos id e itens...
fiz o que vc falou mas a partir dae preciso de uma luz para saber como proceder!.
Obrigado pela força cara!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 09:30:11
|
alissonvla
GUJ Master
Membro desde: 17/04/2006 15:29:07
Mensagens: 1491
Offline
|
cara,
vc ta dando manutenção nesse seu projeto ou ta começando?
pq se vc tiver começando do zero, utilize anotação ao inves de xml, é mais simples de trabalhar.
t+
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 09:53:55
|
Two_
JavaGuru
Membro desde: 03/12/2009 18:01:53
Mensagens: 240
Localização: Belo Horizonte, MG
Offline
|
alissonvla wrote:cara,
vc ta dando manutenção nesse seu projeto ou ta começando?
pq se vc tiver começando do zero, utilize anotação ao inves de xml, é mais simples de trabalhar.
t+
Cara eu tenho um projeto feito todo em hibernate annotations, e se fosse começar hoje do zero ele de novo ia fazer tudo em XML, primeiro por achar muito mais coisa em XML do que annotations
segundo pela manutenção além de certas coisas só ser possível em XML, pelo menos foi o que descobrir quando precisava de alguma coisas mais complexa, usando annotations parecia gambiarra.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 09:56:22
|
alissonvla
GUJ Master
Membro desde: 17/04/2006 15:29:07
Mensagens: 1491
Offline
|
cara,
acho que isso que vc disse ser um pouco improvavel, vc conseguir resolver algum problema com xml e não com anotação.
mas gosto é gosto ne.
t+
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 10:00:54
|
alex.brito
JavaChild
Membro desde: 26/05/2009 07:39:01
Mensagens: 113
Offline
|
andre_bento wrote:Olá amigos.
Eu estou querendo fazer desse jeito mesmo... mas estou tendo dificuldades.
Tipo...
Eu configuerei desse jeito:
E aqui:
Dessa maneira:
Então minha classe SaidaPatrimonio.hbm.xml ficou assim:
Mas quando tento apenas abrir minha tela ele dá erro dizendo: could not parse mapping document from resource Mode/SaidaPatrimonio.hbm.xml
O que posso estar fazendo de errado??
Me ajuuudem!
Então,
<class name="ItensRetirados" lazy="true" table="itensretirados">
<id name="id"> ........
Acho que você precisa colocar o nome do pacote, igual ao saidaPatrimonio .... "Model.ItensRetirados.
e no array ...
<array name="itens" cascade="all" fetch="join">
<key column="id"/>
<list-index column="id"/>
<one-to-many class="SaidaPatrimonio"/>
</array>
O one-to-many e para Model.ItensRetirados.
Acho que é isso ...
[]'s
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 10:04:01
|
Two_
JavaGuru
Membro desde: 03/12/2009 18:01:53
Mensagens: 240
Localização: Belo Horizonte, MG
Offline
|
alissonvla
EU gosto de usar annotations, mais em pequenos projetos, coisa que me gere menos de 100 pojos...
Acima disso vou de XML mesmo
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 10/11/2011 11:39:51
|
andre_bento
JavaGuru
Membro desde: 07/06/2007 12:56:10
Mensagens: 215
Offline
|
Olá amigos.
Pessoal fiz o que o amigo alex.brito me falou e ele parou o erro... até ae beleza...
Só que agora eu preciso mandar esse relacionamento que fiz no hibernate para o banco como eu faço?
E segundo, como faço para dar o insert nessa tabela itensRetirados...
Realmente não estou imaginando como...
O relacionamento é 1 Saída para N itens retirados...
Obrigado amigos
|
|
|
 |
|
|