1

У меня есть две таблицы с общим первичным ключом. Теперь я хочу получить данные из этих двух таблиц и показать в одном представлении с использованием этого первичного ключа.Grails - Несколько таблиц в одном доменном классе

Как я могу получить обе данные таблицы в одном классе домена? Как я могу указать отображение?

Для примера

Table-A и таблицы-B оба находятся в одной схеме ABC

class X { 
    int id 
    String name 

    static mapping = { 
     table name: "Table-A", schema: "ABC" 
     columns { 
     name column:'name' 
     } 
    } 
} 

Теперь я хочу, чтобы получить адрес из таблицы-B так, что мой взгляд выглядит, как показано ниже

ID NAME ADDRESS 
2 HSJHD 23 X-Street Washington USA 

Как получить две таблицы данных в одном классе домена?

ответ

2

Это звучит как внешний ключ отношения, вы бы просто использовать belongsTo в каждом объекте (при условии отношения один к одному). http://grails.org/doc/latest/ref/Domain%20Classes/belongsTo.html

В противном случае вы можете создать представление базы данных в своей базе данных, а затем создать объект домена в соответствии с этим представлением. Создание домена на основе представления базы данных идентично созданию домена на основе таблицы.

+0

Я пробовал BelongsTO, но он не работает. Поскольку у меня есть устаревшая база данных и нет разрешения на изменение базы данных, как я могу это сделать? Что такое Join Table в grails? Можете ли вы поставить решение на код выше? – element40

+0

Я понятия не имею, какие проблемы вы получаете, поэтому я понятия не имею, как я мог бы опубликовать решение больше, чем предлагать методы этого. – Joseph

0

Несколько вариантов

  1. Просто используйте HQL для запроса и присоединиться на первичный ключ

  2. Создать вид из двух таблиц, и карта новой таблицы с этой точки зрения

  3. использования принадлежит к и когда u получает доступ к одному объекту, то доступ к другому

+0

введите код примера для belongsTO. Я не могу понять. По этому поводу нет сообщения в блоге. Его очень сложно с момента получения ошибки – element40

Смежные вопросы