Como recuperar um objeto de um domínio referenciado em outro domínio
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?
byte[] fields
static belongsTo = [documentProperties: DocumentProperties]
String partID
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)"
Tags: Grails, Domain, belongsTo
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
instanciaDeDocumentProperties.documento
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.