Несколько источников данных с ассоциацией в Grails

В моем текущем проекте мне нужно использовать 2 базы данных, одну для основных данных, а другую для клиентских данных. На данный момент мы используем одну базу данных, но мы планировали разделить ее на 2 базы данных (основная база данных и клиентская база данных).

У нас есть связь между клиентом и главной базой данных на уровне классов домена. Я попробовал вариант с несколькими источниками данных в Grails 2.X, но ассоциация невозможна. Если кто-то работал над этим сценарием, предложите мне лучший подход.

Мы склонны использовать одну главную базу данных для всех экземпляров клиента.


person snaredla    schedule 18.06.2015    source источник


Ответы (1)


Я основывал свое решение на этом ответе:

class ClassB {
    Long classAId

    static constraints = {
        classAId nullable: true
    }

    static mapping = {
        datasource 'other'
    }

    static transients = ['classA']

    ClassA getClassA(){
        classAId ? ClassA.get(classAId) : null
    }

    ClassB(classAId){
        def test = ClassA.get(classAId)
        classAId = test ? test.id : null
    }
}

может быть, это не красиво, но это работает.

person Michal_Szulc    schedule 01.12.2015