Статьи

Граальс — учебник ГОРМ

Grails известен как управляемый доменом язык, что означает, что мы можем создавать приложения, используя подход снизу вверх, который ближе к объектно-ориентированному программированию. GORM (реляционное сопоставление объектов Grail) использует intern Hibernate для сопоставления домена с таблицей, которая дает жизнь моделированию домена. Если бы мы объединили все только на основе домена, мы могли бы создать целое веб-приложение. Строительные леса могут принести дизайн домена непосредственно в видимое состояние для бизнес-пользователей с дополнительным участием
Grails-Горм
Но имейте в виду, что Grails — это гибкая среда разработки. Это означает, что мы быстро создаем приложение, разворачиваем и запускаем его одним движением и вносим изменения в любой уровень, не влияя на другие части, такие как интерфейс пользователя, моделирование домена, класс обслуживания и т. Д.

Создать класс домена

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

Начнем с создания простого доменного имени класса User с полями username и userpassword

1
2
3
D:\grails_book\firstapp>grails create-domain-class com.UserManagement.User
This creates a new class file in /firstapp /domain/com/UserManagement/User.groovy
(A corresponding unit test in /test/unit/com/grailsinaction/UserTests.groovy).
1
2
3
4
5
6
7
8
9
package firstapp.domain.com.UserManagement
class User {
 long userid
 String username
 String password
 static constraints = {
 username(blank: false)
 }
}

Примечание: нам не нужно беспокоиться о методах установки и получения, так как Grails / Groovy генерируют динамически.

По умолчанию все поля в доменном классе сохраняются в базе данных. Класс User содержит два поля username и password, которые будут сопоставлены с таблицей User с именем столбца username и password. GORM предоставляет следующие динамические методы для доступа к базе данных без непосредственного изучения PL / SQL.

  • User.save () сохраняет данные в таблицу User в базе данных.
  • User.delete () удаляет данные из таблицы User.
  • User.list () возвращает список пользователей.
  • User.get () возвращает одного пользователя

отношения

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

Он использует ownTo для однонаправленного и hasMany и прямой ссылки для двунаправленного. hasMany также использует для многих отношений. В следующем разделе мы подробно обсудим использование этих свойств.

Отношения один-к-одному

Отношения «один к одному» могут быть однонаправленными или двунаправленными с однозначной ссылкой. Например, у пользователя есть один адрес, и каждый адрес принадлежит только одному пользователю. Следующий рисунок иллюстрирует взаимно-однозначную связь между пользователем и его адресом.

Рисунок Назначение один-на-один для сущностей
один один
Для определения отношений между пользователем и адресом сначала мы создадим класс домена следующим образом

Мы начнем создавать

1
2
D:\grails_book\firstapp>grails create-domain-class com.onetoone.domain.Book
D:\grails_book\firstapp>grails create-domain-class com.onetoone.domain.Author

В приведенном ниже примере поле ownTo информирует GORM, что Book имеет отношение к Author и имеет право на каскад, поэтому, если какой-либо Author удален, соответствующая Book также будет удалена. Мы можем определить отношение «один-к-одному» в однонаправленном или двунаправленном виде, определив ownTo в объекте Address и добавив ссылку на Address в объекте User (owner).

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
package com.onetoone.domain
class Book {
 Long id
 String bookName
 String bookDesc
 static belongsTo=Author //Book belong to Author
 
static constraints = {
 //For validtion
 }
 
String toString(){
 "Book name:${bookName}"
 }
}

Отношения один-ко-многим

Отношение один-ко-многим возникает, когда один объект имеет многозначные отношения с другим объектом.

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

Рисунок: Назначение «один ко многим» для сущностей
один-многим
Grails представляет свойства hasMany и ownTo для установления отношений «один ко многим».

Например, для hasMany необходимо определить домен домена Department, а для класса домена Employee необходимо определить следующее:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package com.onetomany.domain
 
class Department {
 long id
 String departname
 String departmentLOB
 static hasMany=[employees:Employee]
static constraints = {
 }
}
 
package com.onetomany.domain
 
class Employee {
 long id
 String employeename
 String emailid
 String phone
static belongsTo=Department
static constraints = {
 employeename(blank: false)
 }
 static mapping = {
 sort employeename:"desc"// "desc" for descending
 // "asc" for ascending
 }
}

После установления отношения «один ко многим» между Department и Employee Grails автоматически добавляет два новых метода в класс User: Department.addToEmployees () и Department.removeFromEmployees () для добавления ссылочных объектов.

Пожалуйста, нажмите здесь, чтобы скачать код

Вывод

Домен — это сердце разработки на основе Grail, которая отображает домен как сущность в таблицу базы данных без конфигурации или аннотации (используется в среде на основе JPA).

Ссылка: Grails — учебное пособие GORM от нашего партнера JCG Нитина Кумара в блоге Tech My Talk .