Como acessar lazy child no gsp com multi-tenant?
22/12/2020 11:29
0
Estou fazendo atualização de um projeto enorme para utilizar a arquitetura multi-tenant, mas me deparei com um problema, quase todos os gsp tem um entidade com lazy child e é requisitado um valor desse filho. Com o dataSource padrão funcionava 100%, porém com a atualização de multi-tenant, esse dataSource padrão foi removido e foi inserido outros bancos em dataSources e toda vez que é requisitado um lazy child esta estourando a exceção "
org.hibernate.LazyInitializationException: could not initialize proxy - no Sessio
". Alguém sabe como acessar um um filho lazy dentro do gsp utilizando multi-tenant?
Grails 3.3.11
Gorm 6.1.12

??import grails.gorm.MultiTenant;

class Pessoa implements MultiTenant{
 String nome
 Endereco endereco

 static constraints = {
  nome(nullable:false);
  endereco(nullable:true);
 }

 static mapping = {
  enderecos cascade:"all-delete-orphan"
 }
}

import grails.gorm.MultiTenant;

class Endereco implements MultiTenant<Endereco> {
 String rua;
 Integer numero;

 static constraints = {
  rua(nullable:false);
  numero(nullable:false);
 }
}

import grails.validation.ValidationException
import static org.springframework.http.HttpStatus.*
import grails.gorm.multitenancy.*

@CurrentTenant
class PessoaController {

    static allowedMethods = [save: "POST", update: "PUT", delete: "DELETE"]

    def show(Long id) {
        [pessoa: Pessoa.get(id)]
    }
}

<!DOCTYPE html>
<html>
    <head>
        <meta name="layout" content="main" />
        <g:set var="entityName" value="${message(code: 'pessoa.label', default: 'Pessoa')}" />
        <title><g:message code="default.show.label" args="[entityName]" /></title>
    </head>
    <body>
        <a href="#show-pessoa" class="skip" tabindex="-1"><g:message code="default.link.skip.label" default="Skip to content…"/></a>
        <div class="nav" role="navigation">
            <ul>
                <li><a class="home" href="${createLink(uri: '/')}"><g:message code="default.home.label"/></a></li>
                <li><g:link class="list" action="index"><g:message code="default.list.label" args="[entityName]" /></g:link></li>
                <li><g:link class="create" action="create"><g:message code="default.new.label" args="[entityName]" /></g:link></li>
            </ul>
        </div>
        <div id="show-pessoa" class="content scaffold-show" role="main">
            <h1><g:message code="default.show.label" args="[entityName]" /></h1>
            <g:if test="${flash.message}">
            <div class="message" role="status">${flash.message}</div>
            </g:if>
            <fieldset class="form">
                <div class="fieldcontain">
                    <label for="nome">Nome
                    </label>
                    ${this.pessoa.nome}
                </div>

                <div class="fieldcontain">
                    <label for="nome">Endereco
                    </label>
                    ${this.pessoa.endereco}
                </div>
            </fieldset>
            <g:form resource="${this.pessoa}" method="DELETE">
                <fieldset class="buttons">
                    <g:link class="edit" action="edit" resource="${this.pessoa}"><g:message code="default.button.edit.label" default="Edit" /></g:link>
                    <input class="delete" type="submit" value="${message(code: 'default.button.delete.label', default: 'Delete')}" onclick="return confirm('${message(code: 'default.button.delete.confirm.message', default: 'Are you sure?')}');" />
                </fieldset>
            </g:form>
        </div>
    </body>
</html>?
Tags: Grails, Groovy, gsp, hibernate, GORM


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