Можно ли определить какое-то сопоставление в Grails, чтобы CREATE TABLE
заменялось на CREATE MEMORY TABLE
для определенных доменов Grails?
Использование HSQL MEMORY TABLE с Grails
Ответы (2)
Если вы хотите сделать это для всех таблиц, вы можете создать собственный диалект и переопределить getCreateTableString()
, но нет способа узнать текущее имя таблицы, поэтому его можно применять выборочно.
Но вы можете воспользоваться подходом, который я предложил здесь: ограниченное создание таблицы Grails. Вы просто переопределите generateSchemaCreationScript()
, и если вы найдете таблицы, которые вы ищете, вы можете заменить строку «создать таблицу» на «создать таблицу памяти».
Операторы создания таблицы генерируются функцией Hibernate hbm2ddl. Я не думаю, что есть способ настроить синтаксис оператора создания, кроме самого имени таблицы и столбцов.
Вам придется вручную управлять созданием схемы с помощью плагина, такого как Autobase или Liquibase (или что-то еще, что есть в Grails 1.4 для обработки миграции БД).