Como recuperar um objeto de um domínio referenciado em outro domínio
14/10/2019 12:01
0
Prezados,

Estou com um probleminha aqui. Gostaria de ajuda, por gentileza.

Percebam que a minha classe Document possui um DocumentProperties associado por meio do static belongsTo = [documentProperties: DocumentProperties]. É uma relação de 1 pra 1, onde todo Document deverá ter 1 e somente 1 DocumentProperties associado.

O problema é que, quando eu instancio um Document, através da linha de código def doc = DocumentPropertiesValidationService.getDecryptedDocument(uuidDocument), o documento é recuperado da base corretamente, só que quando eu tento pegar a propriedade DocumentProperties (doc.documentProperties), eu recebo null no console. Se eu der um print no objeto, no console não vai aparecer o DocumentProperties. Sendo que eu preciso acessra o valor de DocumentProperties.

Alguém sabe o porque de isso acontecer? 

class Document {
    String uuid
    byte[] fields
    String signature
    static belongsTo = [documentProperties: DocumentProperties]
    String partID
    String typeID
    String owner
    //SQL SERVER
    static mapping = {
        uuid column: "uuid", sqlType: "nvarchar(max)"
        fields column: "fields", sqlType: "varbinary(MAX)"
        signature column: "signature", sqlType: "nvarchar(max)"
        partID column: "partID", sqlType: "nvarchar(max)"
        typeID column: "typeID", sqlType: "nvarchar(max)"
        owner column: "owner", sqlType: "nvarchar(max)"
        version false
    }
    
    static constraints = {
    }
}?

class DocumentProperties {
    String uuid
    byte[] fields
    String partID
    String typeID
    String signature
    //SQL SERVER
    static mapping = {
        uuid column: "uuid", sqlType: "nvarchar(max)"
        fields column: "fields", sqlType: "varbinary(MAX)"
        partID column: "partID", sqlType: "nvarchar(max)"
        typeID column: "typeID", sqlType: "nvarchar(max)"
        signature column: "signature", sqlType: "nvarchar(max)"
        version false
    }    
    static constraints = {
    }
}?



Muito obrigado!

Alfredo
Tags: Grails, Domain, belongsTo


0
Olá Alfredo.
por favor, dá uma olhada no relacionamento hasOne. 
Muito provável que sua classe  DocumentProperties precise ter:

...
static hasOne = [documento: Document]
...


E as referências serão:

instanceiaDeDocumento.documentProperties


e

instanciaDeDocumentProperties.documento


Testa lá!
15/10/2019 09:11


0
Pedro,

Obrigado.

Na verdade eu descobri ontem o que era. Não tem a ver com isso não, era um erro que eu estava cometendo no código, porque os dados da base estão criptografados, e no método de buscar o objeto da base, tem uma criptografia encapsulada e, nela, ao descriptografar, o objeto não estava sendo populado de maneira correta.

Esse método eu já usava há algum tempo e nem desconfiava que ele tivesse algum problema.

Eu recomendo inclusive que essa minha dúvida seja retirada do fórum, porque pode confundir outras pessoas. O belongsTo funciona perfeitamente para o meu problema.

De qualquer forma gostaria de agradecê-lo pela gentileza da resposta.

Obrigado.

Alfredo
15/10/2019 11:48



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