Domínio auto referenciado
16/07/2015 18:50
0
Olá moçada, tenho um banco de dados legado, onde uma tabela se auto referencia, como ficaria o mapeamento nesse caso? Por exemplo, supondo que essa tabela tenha o nome "Parcela", e que como regra uma parcela pode gerar outras parcelas, o domínio ficaria parecido com isso?

class Parcela{

Int valor
Date data

Static hasMany = [parcelas: Parcela]

static mapping = {
id column: "numparcela", generator: "assigned"
version false
}

}
Tags: mapeamento, dominio, auto, referenciado, gorm


1
Eu faço geralmente assim:

class Parcela{
Int valor
Date data
Parcela parcela
static mapping = {
id column: "numparcela", generator: "assigned"
version false
parcela column:'numparcela'
}
}
16/07/2015 20:42


0
Olá Fernando, desde já vlw pela ajuda, a minha pergunta ficou um pouco incompleta, faltou um dado importante que afeta diretamente o relacionamento, tenho uma classe Vendas, e ela pode ter várias parcelas (one to many), assim com uma parcela pode gerar outras parcelas (auto referenciada e com chave composta), sendo assim o mapeamento ficaria parecido com isso?

class Vendas{
Integer valor

static hasMany = [parcelas:Parcela]
static mapping = {
id column: "codVenda", generator: "assigned"
version false
}
static constraints = {.......}
}


class Parcelas implements Serializable{
Integer prcCodVenda   /***FK***/
Integer numparcela   /***PK***/ ?
Int valor
Date data
Parcela parcela

int hashCode() {
  def builder = new HashCodeBuilder()
  builder.append prcCodVenda
  builder.append numparcela
  builder.toHashCode()
}

boolean equals(other) {
  if (other == null) return false
  def builder = new EqualsBuilder()
  builder.append prcCodVenda, other.prcCodVenda
  builder.append numparcela, other.numparcela
  builder.isEquals()
}

static hasMany = [parcelas: Parcelas]
static belongsTo = [Vendas]

static mapping = {
id composite: ["prcCodVenda", "numparcela" ]
version false
}

static constraints = {...... }
}
21/07/2015 12:45



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto