Pergunta

Eu tenho este gráfico de objetos, quero mapear:

  • Conta abstrata (nome de usuário, senha, ...)
    • Customerado resumo (carrinho de compras, pedidos, funções)
      • Individualcustomer (dados do usuário)
      • Corporatecustomer (diferentes dados do usuário, dados da empresa)
    • Administrador (AdminRoles)

Como isso pode ser mapeado contra uma mesa? (Eu sei como fazer isso com uma hierarquia de entidades com apenas 1 nível de profundidade, assim como nos documentos, mas isso é diferente).

Alguém tem uma ideia? Eu perguntei o mesmo emhttp://groups.google.com/group/nhusers/browse_frm/thread/7a85cba0048c18d8?hl=en, mas até agora não receberam uma resposta útil.

Foi útil?

Solução 2

As subclasses de nidificação são contra o esquema XML, então meu palpite é que não funcionará. Eu provavelmente também teria que aninhar a declaração discriminadora, que também parece hackish.

e mapeando -o plano ... Passo a um discriminador para uma classe abstrata, que nunca pode ser usada porque uma classe abstrata não pode ser instanciada. Parece errado também.

Mas você está certo, vou experimentar algum tempo. No momento, parece uma ideia melhor para mim deixar o cliente tenho uma conta, em vez de ser uma.

obrigado!

Outras dicas

Pelo que vejo, não deve ser diferente da hierarquia de um nível de um nível. Experimente isso:

<hibernate-mapping> 
<class                                                     
    name="Account" 
    table="..." > 
    <property .../> 
        ... 
    <subclass                                              
        name="Customer" > 
        <property ... "/> 
        ... 
    </subclass> 

    <subclass                                              
        name="IndividualCustomer" > 
        <property ... "/> 
        ... 
    </subclass> 
    ... 
</class> 

Não tenho o Nibernate aqui, para verificar, mas parece que deve funcionar. Você também pode tentar aninhar elementos da subclasse, se não o fizer.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top