Grails 2.4.2 - Referenciando dinamicamente a fonte de dados padrão
Esta pergunta foi parcialmente respondidaaqui mas ainda há um problema ao referenciar a fonte de dados padrão dinamicamente.
Estou trabalhando em um aplicativo interno que permite que os desenvolvedores modifiquem as configurações de um de nossos aplicativos multilocatários e transfiram essas configurações do desenvolvedor para o teste, teste e produção. Cada um deles terá sua própria fonte de dados e o aplicativo Grails será instalado no computador de cada desenvolvedor.
A fonte de dados local será a padrão e, em seguida, dataSource_testing, dataSource_staging e assim por diante fará referência aos ambientes apropriados.
Posso referenciar dinamicamente as fontes de dados remotas com o seguinte:
def setting = Setting."${params.environmnet}".get(id)
No entanto, separams.environment
está referenciando a fonte de dados padrão, esse código não funciona mais. Na documentação para configuração de classes de domínio, ele afirma:
Se uma classe de domínio usar o DataSource padrão e um ou mais outros, use o nome especial 'DEFAULT' para indicar o DataSource padrão
Vejoa documentação
Parece que funciona ao definir a quais fontes de dados sua classe de domínio é aplicável, mas não pode fazer referência a sua classe de domínio como:def setting = Setting.DEFAULT.get(id)
. Você recebe um erro informando:
Não existe essa propriedade: PADRÃO para a classe ...
eu realmenterealmente não é necessário reprojetar o aplicativo para que a fonte de dados padrão não seja realmente usada e, em seguida, crie um novodataSource_local
fonte de dados. Se eu puder evitar isso, seria ótimo, pois significa atualizar pilhas de código aplicáveis apenas à fonte de dados local.
Então, minha pergunta ... existe uma maneira de referenciar dinamicamente a fonte de dados padrão?