Como mapear uma hierarquia mais profunda no Nibernate
-
03-07-2019 - |
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)
- Customerado resumo (carrinho de compras, pedidos, funções)
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.
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.