Я использую плагин Grails Datasources в своем приложении, и у меня возникают проблемы с сохранением класса домена (chidl), ссылающегося на класс только для чтения (родительский). Например:
/* Parent domain class; a read-only datasource using the Datasources plugin */
class Parent {
//...Some fields
}
/* Child domain class, referencing the parent class */
class Child
// Some fields
static hasOne = [parent:Parent]
}
Когда я пытаюсь сохранить свой дочерний класс, я получаю эту ошибку
Cannot add or update a child row: a foreign key constraint fails
(`foo`.`child`, CONSTRAINT `FK38A5EE5F707D1A2B`
FOREIGN KEY (`id`) REFERENCES `parent` (`id`))
Я заметил, что Grails создает локальную пустую копию таблицы, на которую ссылаются, из (100%) * (только для чтения) в мою локальную (доступную для записи) datasource B
при создании таблиц при запуске. Может ли он ссылаться на эту таблицу (и ее недавно созданный FK) вместо этого? Если да, то почему он не применяет ограничение FK для фактического источника данных (т.е. в datasource A
)?
Я довольно новичок в Grails и не смог найти решения этой конкретной проблемы где-либо еще, так что извините, если это звучит глупо