Grails - внешние контроллеры баз данных и домены - PullRequest
0 голосов
/ 23 декабря 2018

Я новичок в Grails.Я использую свою внешнюю базу данных MySQL.Нужно ли создавать классы домена Grails для таблиц в моей базе данных (скопировать базу данных в модель домена) или я могу создавать контроллеры и представления только для моих внешних таблиц mysql без создания классов домена?

Спасибо за ответы.

Ответы [ 3 ]

0 голосов
/ 24 декабря 2018

Не требуется, чтобы вы использовали GORM с Grails.Фактически вы можете просто использовать классы и тому подобное из пакета groovy.sql и взаимодействовать с вашей базой данных напрямую, используя SQL и GroovyRowResult вместо классов домена.

Однако, если вы не используете GORM, вы такжепотерять много леса (например, для создания контроллеров и представлений), потому что у вас нет смоделированного домена.

0 голосов
/ 26 декабря 2018

Лучше объявить ваш домен в классе, который может быть связан с базой данных.

класс домена пользователя

class User {

    Long id
    String name

    static mapping = {
        table 'user'  //here user is database table name

        version false
        id column: 'id', generator: 'increment'
        name column: 'name'
    }

    static constraints = {
        id(nullable: true)
        name(nullable: false)
    }
}

вы можете использовать скаффолдинг в контроллере для генерации CRUD, например

class UserController {

    static scaffold = User
    def index() {
        def userList = User.list()
        [userList: userList]
    }
}

Без объявления класса вашего домена вы получите ошибку при выполнении запроса из базы данных в контроллере.

0 голосов
/ 23 декабря 2018

Нет, вы эффективно высмеиваете таблицы базы данных в своих доменах.

Фактически, если вы сначала создадите свои домены, они автоматически создадут ваши таблицы для вас;многие люди находят это более простым способом, так как если у вас есть уже существующая база данных, вы должны соответствовать ограничениям ИДЕАЛЬНО, чтобы она заработала.

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