Grails - несколько таблиц в одном доменном классе - PullRequest
1 голос
/ 29 декабря 2011

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

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

Например

Таблица 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

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

Ответы [ 3 ]

2 голосов
/ 30 декабря 2011

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

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

0 голосов
/ 01 января 2012

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

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

  2. Создание представления из двух таблиц и сопоставление новой таблицы с этим представлением

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

0 голосов
/ 29 декабря 2011

Вам нужно будет использовать ограничения: http://www.grails.org/doc/2.0.x/ref/Constraints/Usage.html

и http://www.grails.org/doc/2.0.x/guide/single.html#constraints

...