ACTIVERECORD E HIBERNATE
Olá pessoal, estou tentando aprender a usar estas tecnologias e estou encontrando algumas dificuldades em aprende-las.
Alguem ae poderia me dar um exemplo de como usa-las com relacionamentos de --> um para muitos e muito para muitos.
Encontrei alguns exemplos no site do macoratti, mas ainda estou necessitando de mais materiais e exemplos praticos.
vlw pessoal, agradeço a atencao.
Alguem ae poderia me dar um exemplo de como usa-las com relacionamentos de --> um para muitos e muito para muitos.
Encontrei alguns exemplos no site do macoratti, mas ainda estou necessitando de mais materiais e exemplos praticos.
vlw pessoal, agradeço a atencao.
Cara.. isso aà é o leite que eu tirei da pedra, a documentação é escassa/em inglês, os exemplos são todos em C#, mais pra frente você vai começar a encontrar as dúvidas de verdade, tipo [Ô]como lidar com os escopos corrretamente[Ô], [Ô]como tratar concorrência[Ô], é nisso que eu estou travado agora..
Espero ter te ajudado, se descobrir algo interessante me da um toque..
Abraço
Segue o código:
Imports Castle.ActiveRecord
<ActiveRecord([Ô]empresas[Ô])> _
Public Class Empresa
Private _id As Integer
Private _nome As String
Private _ramosAtuacao As IList = New ArrayList
Private _contatos As IList = New ArrayList
<PrimaryKey([Ô]emp_codigo[Ô])> _
Public Overridable Property Id() As Integer
Get
Return _id
End Get
Set(ByVal value As Integer)
_id = value
End Set
End Property
<[Property]([Ô]emp_nome[Ô])> _
Public Overridable Property Nome() As String
Get
Return _nome
End Get
Set(ByVal value As String)
_nome = value
End Set
End Property
<HasAndBelongsToMany(GetType(RamosAtuacao), Table:=[Ô]RamosEmpresas[Ô], ColumnKey:=[Ô]re_idEmpresa[Ô], ColumnRef:=[Ô]re_idRamo[Ô])> _
Public Overridable Property RamosAtuacao() As IList
Get
Return _ramosAtuacao
End Get
Set(ByVal value As IList)
_ramosAtuacao = value
End Set
End Property
<HasMany(GetType(Contato), Table:=[Ô]contatos[Ô], ColumnKey:=[Ô]con_idEmpresa[Ô])> _
Public Overridable Property Contatos() As IList
Get
Return _contatos
End Get
Set(ByVal value As IList)
_contatos = value
End Set
End Property
End Class
<ActiveRecord([Ô]ramoAtuacao[Ô])> _
Public Class RamosAtuacao
Private _id As Integer
Private _nome As String
Private _descricao As String
Private _empresas As IList = New ArrayList
<PrimaryKey([Ô]ram_codigo[Ô])> _
Public Overridable Property Id() As Integer
Get
Return _id
End Get
Set(ByVal value As Integer)
_id = value
End Set
End Property
<[Property]([Ô]ram_nome[Ô])> _
Public Overridable Property Nome() As String
Get
Return _nome
End Get
Set(ByVal value As String)
_nome = value
End Set
End Property
<[Property]([Ô]ram_descricao[Ô])> _
Public Overridable Property Descricao() As String
Get
Return _descricao
End Get
Set(ByVal value As String)
_descricao = value
End Set
End Property
<HasAndBelongsToMany(GetType(Empresa), Table:=[Ô]RamosEmpresas[Ô], ColumnKey:=[Ô]re_idRamo[Ô], ColumnRef:=[Ô]re_idEmpresa[Ô], _
lazy:=True, Inverse:=True)> _
Public Overridable Property Empresas() As IList
Get
Return _empresas
End Get
Set(ByVal value As IList)
_empresas = value
End Set
End Property
End Class
<ActiveRecord([Ô]contatos[Ô])> _
Public Class Contato
Private _id As Integer
Private _nome As String
Private _empresa As Empresa
<PrimaryKey([Ô]con_codigo[Ô])> _
Public Overridable Property Id() As Integer
Get
Return _id
End Get
Set(ByVal value As Integer)
_id = value
End Set
End Property
<[Property]([Ô]con_nome[Ô])> _
Public Overridable Property Nome() As String
Get
Return _nome
End Get
Set(ByVal value As String)
_nome = value
End Set
End Property
<BelongsTo([Ô]con_idEmpresa[Ô])> _
Public Overridable Property Empresa() As Empresa
Get
Return _empresa
End Get
Set(ByVal value As Empresa)
_empresa = value
End Set
End Property
End Class
Espero ter te ajudado, se descobrir algo interessante me da um toque..
Abraço
Segue o código:
Imports Castle.ActiveRecord
<ActiveRecord([Ô]empresas[Ô])> _
Public Class Empresa
Private _id As Integer
Private _nome As String
Private _ramosAtuacao As IList = New ArrayList
Private _contatos As IList = New ArrayList
<PrimaryKey([Ô]emp_codigo[Ô])> _
Public Overridable Property Id() As Integer
Get
Return _id
End Get
Set(ByVal value As Integer)
_id = value
End Set
End Property
<[Property]([Ô]emp_nome[Ô])> _
Public Overridable Property Nome() As String
Get
Return _nome
End Get
Set(ByVal value As String)
_nome = value
End Set
End Property
<HasAndBelongsToMany(GetType(RamosAtuacao), Table:=[Ô]RamosEmpresas[Ô], ColumnKey:=[Ô]re_idEmpresa[Ô], ColumnRef:=[Ô]re_idRamo[Ô])> _
Public Overridable Property RamosAtuacao() As IList
Get
Return _ramosAtuacao
End Get
Set(ByVal value As IList)
_ramosAtuacao = value
End Set
End Property
<HasMany(GetType(Contato), Table:=[Ô]contatos[Ô], ColumnKey:=[Ô]con_idEmpresa[Ô])> _
Public Overridable Property Contatos() As IList
Get
Return _contatos
End Get
Set(ByVal value As IList)
_contatos = value
End Set
End Property
End Class
<ActiveRecord([Ô]ramoAtuacao[Ô])> _
Public Class RamosAtuacao
Private _id As Integer
Private _nome As String
Private _descricao As String
Private _empresas As IList = New ArrayList
<PrimaryKey([Ô]ram_codigo[Ô])> _
Public Overridable Property Id() As Integer
Get
Return _id
End Get
Set(ByVal value As Integer)
_id = value
End Set
End Property
<[Property]([Ô]ram_nome[Ô])> _
Public Overridable Property Nome() As String
Get
Return _nome
End Get
Set(ByVal value As String)
_nome = value
End Set
End Property
<[Property]([Ô]ram_descricao[Ô])> _
Public Overridable Property Descricao() As String
Get
Return _descricao
End Get
Set(ByVal value As String)
_descricao = value
End Set
End Property
<HasAndBelongsToMany(GetType(Empresa), Table:=[Ô]RamosEmpresas[Ô], ColumnKey:=[Ô]re_idRamo[Ô], ColumnRef:=[Ô]re_idEmpresa[Ô], _
lazy:=True, Inverse:=True)> _
Public Overridable Property Empresas() As IList
Get
Return _empresas
End Get
Set(ByVal value As IList)
_empresas = value
End Set
End Property
End Class
<ActiveRecord([Ô]contatos[Ô])> _
Public Class Contato
Private _id As Integer
Private _nome As String
Private _empresa As Empresa
<PrimaryKey([Ô]con_codigo[Ô])> _
Public Overridable Property Id() As Integer
Get
Return _id
End Get
Set(ByVal value As Integer)
_id = value
End Set
End Property
<[Property]([Ô]con_nome[Ô])> _
Public Overridable Property Nome() As String
Get
Return _nome
End Get
Set(ByVal value As String)
_nome = value
End Set
End Property
<BelongsTo([Ô]con_idEmpresa[Ô])> _
Public Overridable Property Empresa() As Empresa
Get
Return _empresa
End Get
Set(ByVal value As Empresa)
_empresa = value
End Set
End Property
End Class
Obs:
Empresas<>Contatos = 1-N
Empresas<>RamosAtuacao = N-N (existem 3 tabelas nesse relacionamento, [ô]empresas[ô], [ô]ramosAtuacao[ô] e [ô]RamosEmpresas[ô], se não conseguiu entender da um toque..)
Abraço
Empresas<>Contatos = 1-N
Empresas<>RamosAtuacao = N-N (existem 3 tabelas nesse relacionamento, [ô]empresas[ô], [ô]ramosAtuacao[ô] e [ô]RamosEmpresas[ô], se não conseguiu entender da um toque..)
Abraço
Cara, vc é demais, hoje mesmo farei os testes, se eu alcancar o nivel que vc está, ficarei muiito feliz, vlw muito obrigado.
Deixarei o post aberto por mais um tempinho, depois eu fecho.
Deixarei o post aberto por mais um tempinho, depois eu fecho.
Cara, Fiz os testes, conseguir adiantar um monte de coisas, só que nao estou conseguindo salvar as listas no BD. Eu alterei um objeto da lista e utilizei o metodo obj.Update do activerecord, e ae só as propriedades do obj foram salvas, os itens de uma lista que tenho dentro do mesmo obj nao foram alterados. Como informar ao obj que as listas tambem precisam ser salvas ou alteradas?
Pra ficar mais claro, descreve ae os campos das tabelas utilizadas no exemplo e se puder enviar o projeto pra mim ficarei muito grato, meu email é : rodrigosantanaporto@yahoo.com.br
vlw cara, obrigado mais uma vez, t+
Pra ficar mais claro, descreve ae os campos das tabelas utilizadas no exemplo e se puder enviar o projeto pra mim ficarei muito grato, meu email é : rodrigosantanaporto@yahoo.com.br
vlw cara, obrigado mais uma vez, t+
Cara..Não estou com o código aqui..
tente usar [Ô]Save[Ô] ao invés de [Ô]Update[Ô]..
Tente também procurar um parâmetro para colocar na anotação da lista que não esta salvando eh algo tipo [Ô]Cascade[Ô], e coloque [Ô]All[Ô].. vou ver certinho na segunda feira, quando tiver com o código..
Abraço
tente usar [Ô]Save[Ô] ao invés de [Ô]Update[Ô]..
Tente também procurar um parâmetro para colocar na anotação da lista que não esta salvando eh algo tipo [Ô]Cascade[Ô], e coloque [Ô]All[Ô].. vou ver certinho na segunda feira, quando tiver com o código..
Abraço
Conseguiu?
Consegui, mas estou encontrando dificuldades em outras coisas agora, como por exemplo, extrair dados apartir de relacionamentos, fazer consultas utilizando CRITERIA, entre outros, mas de qualque forma, muito obrigado.
abracos
abracos
Tópico encerrado , respostas não são mais permitidas