Grails несколько баз данных - PullRequest
0 голосов
/ 08 марта 2010

как мы можем писать запросы на 2 базы данных.

Я установил плагин datasources и классы доменов:

class Organization {
    long id
    long company_id
    String name

    static mapping = {
        version false
        table 'organization_'
        id column : 'organizationId'
        company_id column : 'companyId'
        name column : 'name'
    }
}

class Assoc {
    Integer id
    Integer association_id
    Integer organization_id


    static mapping = {
        version false
        table 'assoc'
        id column : 'ASSOC_ID'
        association_id column : 'ASSOCIATION_ID'
        organization_id column : 'ORGANIZATION_ID'
    }
}

это работает:

def org = Organization.list()
def assoc = Assoc.list()

и это не работает:

def query = Organization.executeQuery("SELECT o.name as name, o.id FROM Organization o WHERE o.id IN (SELECT a.organization_id FROM Assoc a )")

ошибка:

org.hibernate.hql.ast.QuerySyntaxException: Assoc не отображается [ВЫБРАТЬ o.name как имя, o.id ОТ org.com.domain.Organization o ГДЕ o.id IN (ВЫБЕРИТЕ a.organization_id ОТ СОЕДИНЕНИЯ a)]

Как мы можем соединиться с 2 базами данных, используя один запрос?

заранее спасибо.

1 Ответ

1 голос
/ 08 марта 2010

Вам придется разделить его на два запроса, сначала получить идентификаторы и использовать их в основном запросе. Плагин разделяет ваши доменные классы на отдельные SessionFactory, поэтому вы не можете присоединиться к Hibernate.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...