Consideramos a classe Pessoa, a seguir modelada:
Para quem ainda não está acostumado a utilizar o Visual Studio (eu utilizo o VS 2008 Professional), esse diagrama pode ser feito no próprio visual a partir do código da classe ou não, qualquer mudança na classe é refletida no modelo e qualquer mudança no modelo é refletido no código da classe. Este é o código da classe:
Public Class Pessoa
Private _id As Long
Private _nome As String
Private _cpf As String
Private _endereco As String
Private _telefone As String
Private _dataNascimento As Date
Public Sub New()
End Sub
Public Overridable ReadOnly Property Id() As Long
Get
Return _id
End Get
End Property
Public Overridable Property Nome() As String
Get
Return _nome
End Get
Set(ByVal value As String)
_nome = value
End Set
End Property
Public Overridable Property Cpf() As String
Get
Return _cpf
End Get
Set(ByVal value As String)
_cpf = value
End Set
End Property
Public Overridable Property Endereco() As String
Get
Return _endereco
End Get
Set(ByVal value As String)
_endereco = value
End Set
End Property
Public Overridable Property Telefone() As String
Get
Return _telefone
End Get
Set(ByVal value As String)
_telefone = value
End Set
End Property
Public Overridable Property DataDeNascimento() As Date
Get
Return _dataNascimento
End Get
Set(ByVal value As Date)
_dataNascimento = value
End Set
End Property
End Class
É importante observar a presença da propriedade Id, presente na classe. Esta propriedade é obrigatória para que possa ser realizado o mapeamento objeto relacional. O Id será utilizado pelo NHibernate para um controle interno, nos posts futuros irei explicar o porque disso, por enquanto o importante é saber que o Id sempre deverá ser utilizado.
Agora realizaremos o mapeamento da classe Pessoa para que o NHibernate possa realizar o gerenciamento sobre cada objeto criado pela classe, tomando toda a responsabilidade de comunicação com o banco de dados e persistência no mesmo. Para que isso seja possível é necessário a criação de um documento XML (eXtensible Markup Language), este documento servirá de base para o NHibernate compreender como é estruturado o objeto que deverá ser mapeado. Este processo de criação do XML é geralmente chamado de mapeamento pelos programadores.
Cada uma das propriedades de uma classe deve ser mapeada, assim como a própria classe. A declaração do mapeamento de cada um destes é feito por uma tag XML, para as propriedades utiliza-se a tag property, e para a classe a tag
Descrevendo os atributos utilizados na declaração da classe:
name: são na verdade dois nomes. Oprimeiro é o nome completo da classe, nesse caso, como criei uma nova aplicação e o nome que dei a solution foi "Exemplo", o nome completo da classe Pessoa é "Exemplo.Pessoa". O segundo nome é o nome do assembly da aplicação, que é o mesmo que foi dado a solution "Exemplo" .
table: é o nome que será atribuído a tabela criada no banco.
Descrevendo os atributos utilizados no mapeamento das propriedades:
name: deve ser o exato nome da propriedade que está sendo mapeada.
column: é o nome que será atribuído a coluna criada na tabela.
type: é o tipo da propriedade, este deve ser exatamente o mesmo tipo declarado na propriedade. not-null: define na tabela do banco se a propriedade pode ou não ser nula.
length: define o tamanho máximo declarado na coluna da tabela, somente em propriedades do tipo texto (String, char.. etc).
unique: cria uma chave única para a coluna da tabela, referente a propriedade mapeada.
access: Utilizado no mapeamento do Id. Também pode ser utilizado em qualquer outra propriedade. Define como será o acesso a propriedade, como abrigatóriamente o Id só pode ser lido (readOnly) é definido o acesso "nosetter.camelcase-underscore" e utilizado o readOnly na declaração do código da propriedade.
A ordem em que esses atributos são escritos não interferem no funcionamento. Há ainda outros atributos, que serão abordados futuramente, novamente cito que na documentação do NHibernate pode-se conferir todos os atributos que podem ser utilizados.
Acho que esse é um importante começo no uso do NHibernate, entender como é a sua utilização. mas para que possamos utilizar devemos saber como configurar o NHibernate, juntamente com o banco de dados. Essas informações vem juntamente com o NHibernate, quando é feito seu download pode-se conferir na pasta Core\Configuration_Templates as configurações para cada tipo de banco. Mais tarde abordarei este assunto aqui também, mostrando passo a passo como fazer uma pequena aplicação utilizando o NHibernate.
Até mais...
Documentação do NHibernate: https://www.hibernate.org/343.html
É seu Latchuk, muito bom esse post. Certamente vc é um fera com o NHibernate, já que implemento um framework pra automatizar todas essas operações. Como sugestão para um novo post, vc poderia explicar o arquivo de configurações do NHibernate...
ResponderExcluirParabéns.
Sugestão aceita meu amigo!
ResponderExcluirEstarei postando em breve como deve ser construído o arquivo de configuração do NHibernate.
Obrigado!