Все
Моя проблема в том, что я создаю отношение 1-ко-многим в GORM и ожидаю, что в качестве вспомогательных объектов будут созданы 2 таблицы базы данных.3 созданы, что делает запросы SQL чрезмерно сложными.
Я создал близкий вариант «1 ко многим» в документации GORM:
class Status {
List errorMessage
static hasMany = [errorMessage:ErrorMessage]
}
и класс сообщения об ошибке:
class ErrorMessage {
String message
static belongsTo = Status
}
Iожидал, что это создаст две таблицы базы данных:
CREATE TABLE status {
ID NUMBER(19,0),
VERSION NUMBER(19,0),
//other fields
}
CREATE TABLE error_message {
ID NUMBER(19,0),
VERSION NUMBER(19,0),
STATUS_ID NUMBER(19,0),
MESSAGE VARCHAR(255)
//other fields
}
, но на самом деле ему нужна третья таблица,
CREATE TABLE status_text {
status_text_id NUMBER(19,0),
text_idx NUMBER(19,0),
text_id NUMBER(19,0)
}
Добавление статуса в ErrorMessage (хак, поскольку я не хочу, чтобы ErrorMessageесть ссылка на Status) класс удаляет третью таблицу, но сохраняет второй внешний ключ, в результате чего дочерний объект Text имеет два поля внешнего ключа.
То, что я хочу, это просто - просто набор объектов, прикрепленных к родительскому объекту.удалится когда будет - есть мысли что я делаю не так?
Спасибо