Я интегрирован с устаревшей базой данных Oracle, которая использует назначенные значения VARCHAR2 для первичных ключей.Я создаю отношения один ко многим с этой существующей таблицей.Устаревшая таблица называется Приложения (которую я не могу изменить), а новая таблица называется Проекты.Многие проекты могут быть назначены одному приложению.
Когда GORM создает таблицу Project, он создает столбец NUMBER для внешнего ключа application_id, даже если это поле VARCHAR2 в таблице Applications.
class Application {
static hasMany = [projects : Project]; // does not fix problem
String application_id;
...
static mapping = {
table 'applications'
version false
id (column:'application_id')
}
static constraints = {
application_id(maxSize:16,blank:false,unique:true,type:"string",generator:"assigned")
}
...
}
class Project {
Application application;
...
}
Когда я компилирую приложение, я получаю следующие предупреждения: Неудачно: изменить таблицу проекта добавить ограничение FKED904B1956694CB5 Внешний ключ (application_id) ORA-02267: тип столбца несовместим со ссылочным типом столбца
Когда я запускаюприложение и нажмите на контроллер приложений Я получаю эту ошибку: состояние SQL [99999];код ошибки [17059];Не удалось преобразовать во внутреннее представление;вложенное исключение: java.sql.SQLException: не удалось преобразовать во внутреннее представление
Когда я нажимаю на Project |создать Я получаю эту ошибку: не удалось преобразовать во внутреннее представление;Вложенное исключение - java.sql.SQLException: не удалось преобразовать во внутреннее представление в / project / create: 172
Итак, как я могу установить класс Project для ожидания внешнего ключа VARCHAR2 для приложения?
Спасибо за любую помощь!