Hibernate: joined-subclass e subclass.  XML
Índice dos Fóruns » Arquitetura de Sistemas
Autor Mensagem
jack_-_ganzha
JavaEvangelist
[Avatar]

Membro desde: 31/03/2003 13:18:12
Mensagens: 315
Localização: Recife - Pernambuco
Offline

Olá,

Eis que me deparei com o seguinte problema. Uso o Hibernate para ORM e agora preciso de uma hieararquia de classes que funcione assim:

  • People - classe na raiz da arvore de herança e se relaciona com a table SCACIN_PEOPLE;

    User - classe filha de People e que, no mapeamento é uma joined-class, ou seja, uma table especifica para essa classe. No casos, SCACIN_USER;

    Administrator e outras 2 classes - essas são subclasses de User e não precisam de uma table por classe.

  • Então, o mapeamento das classes filhas de User deveriam ser feitas via subclass com um descriminator value para identificar cada classe na hierarquia de herança. O problema é que a DTD do Hibernate não permite que uma joined-subclass possua uma subclass ou o contrario. Mais ainda, vc não pode ter no mapeamento de uma classe, no caso People, mix entre joined-subclass e subclass. Ou seja, usa uma ou outra. Alguma ideia de como resolver isso? A unica coisa que me ocorre agora é usar composição entre People e User, mas isso implica mudançs no Modelo ER e daí, haja briga com quem fez o banco.

    Details:
    Hibernate Version: 2.1.4, 02. June 2004
    Class headers with XDoclet Tags:



    Obviamente, como expliquei acima, o conjunto de tags para a classe Administrator não funciona.

    Post pertinente no forum do Hibernate:
    http://forum.hibernate.org/viewtopic.php?t=931004

    valeuz...

    Marcos Silva Pereira

    http://www.javafree.org
    http://marcospereira.wordpress.com
    [MSN] [ICQ]
    Paulo Silveira
    Administrador
    [Avatar]

    Membro desde: 07/08/2002 18:38:50
    Mensagens: 4204
    Localização: São Paulo
    Offline

    Use tudo joined!
    Alias, eh muito mais elegante em relacao ao modelo entidade relacionamento neh? forma normal e tal....

    http://blog.caelum.com.br twitter: @paulo_caelum


    [Email] [WWW]
    jack_-_ganzha
    JavaEvangelist
    [Avatar]

    Membro desde: 31/03/2003 13:18:12
    Mensagens: 315
    Localização: Recife - Pernambuco
    Offline

    Paulo Silveira wrote:Use tudo joined!
    Alias, eh muito mais elegante em relacao ao modelo entidade relacionamento neh? forma normal e tal....

    Mas, Paulo, usar tudo joined me obriga a fazer mudanças na estrutura do banco visto que assim fica uma table-per-class, não? Bom, eu não posso alterar o modelo do banco. Vou refatorar algumas coisas para mandar metade essa hierarquia de herança pro espaço. Sugestões?

    ps.: Dos foruns do Hibernate: "Hibernate3 solves this by allowing you to mix <subclass> and <join>"

    valeuz...

    Marcos Silva Pereira

    http://www.javafree.org
    http://marcospereira.wordpress.com
    [MSN] [ICQ]
     
    Índice dos Fóruns » Arquitetura de Sistemas
    Ir para:   
    Powered by JForum 2.1.8 © JForum Team