Миграция WaveMaker 9.4 на 10.6.6: ошибки несоответствия типов (от целого числа к BigInteger) в сгенерированном Java-кодеJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Миграция WaveMaker 9.4 на 10.6.6: ошибки несоответствия типов (от целого числа к BigInteger) в сгенерированном Java-коде

Сообщение Anonymous »

Сводка проблемы
Я пытаюсь перенести проект WaveMaker с версии 9.4 на 10.6.6 и сталкиваюсь с постоянными ошибками компиляции, связанными с несоответствием типов между Integer и BigInteger в автоматически создаваемых файлах службы Java. Ошибки возникают, в частности, при сопоставлении отношений внешних ключей между несколькими объектами базы данных.
Среда
  • Исходная версия: WaveMaker 9.4
  • Целевая версия: WaveMaker 10.6.6
  • База данных: на основе SQL (конкретная СУБД не упоминается, но, похоже, используются целочисленные первичные ключи с автоинкрементом)
Сведения об ошибках
Сборка завершается неудачей из-за этих ошибок несоответствия типов в сгенерированном коде Java. Вот полный журнал ошибок:

Код: Выделить всё

1. ERROR in /default/projects/CIPA_TEMP/master/services/WavemakerDB/src/com/cipa/wavemakerdb/CommAppInfo.java (at line 1403)
this.progId = commPrograms.getProgId();
^^^^^^^^^^^^^^^^^^^^^^^^
Type mismatch: cannot convert from Integer to BigInteger

2. ERROR in /default/projects/CIPA_TEMP/master/services/WavemakerDB/src/com/cipa/wavemakerdb/CommEquInfo.java (at line 234)
this.appId = commAppInfo.getAppId();
^^^^^^^^^^^^^^^^^^^^^^
Type mismatch: cannot convert from Integer to BigInteger

3. ERROR in /default/projects/CIPA_TEMP/master/services/WavemakerDB/src/com/cipa/wavemakerdb/CommResponse.java (at line 162)
this.bldgId = commBldgInfo.getBldgId();
^^^^^^^^^^^^^^^^^^^^^^^^
Type mismatch: cannot convert from Integer to BigInteger

4. ERROR in /default/projects/CIPA_TEMP/master/services/WavemakerDB/src/com/cipa/wavemakerdb/CommResponse.java (at line 192)
this.equId = commEquInfo.getEquId();
^^^^^^^^^^^^^^^^^^^^^^
Type mismatch: cannot convert from Integer to BigInteger

5. ERROR in /default/projects/CIPA_TEMP/master/services/WavemakerDB/src/com/cipa/wavemakerdb/CommResponse.java (at line 207)
this.locId = commLocInfo.getLocId();
^^^^^^^^^^^^^^^^^^^^^^
Type mismatch: cannot convert from Integer to BigInteger

6. ERROR in /default/projects/CIPA_TEMP/master/services/WavemakerDB/src/com/cipa/wavemakerdb/Uwcomments.java (at line 129)
this.uid = users.getUid();
^^^^^^^^^^^^^^
Type mismatch: cannot convert from BigInteger to Integer
Затронутые сущности и связи
Ошибки охватывают несколько связей сущностей: Что мы пробовали
  • Исправления кода вручную: Была предпринята попытка вручную изменить сгенерированные файлы Java, но WaveMaker отказывается компилировать, поэтому все изменения базы данных должны происходить через пользовательский интерфейс.
  • Повторный импорт базы данных через пользовательский интерфейс: Предпринята попытка повторного импорта базы данных с помощью мастера импорта базы данных WaveMaker, но несоответствия типов сохраняются.
  • Проверены учебные материалы по WaveMaker: Пройдены все курсы WaveMaker, чтобы обеспечить правильное использование функций управления базами данных платформы.
  • Обратился в службу поддержки WaveMaker: Официальная поддержка не получила действенного решения.
  • Повторный импорт версии 9.4: Перед миграцией предпринята попытка повторного импорта базы данных в версии 9.4, что привело к тем же ошибкам, что и выше.
Основная причина Гипотеза
Мы полагаем, что в какой-то момент схема базы данных была изменена за пределами пользовательского интерфейса WaveMaker (возможно, прямые изменения SQL), что привело к рассинхронизации внутреннего представления схемы WaveMaker с фактической структурой базы данных. Переход с версии 9.4 на версию 10.6.6 также мог изменить способ сопоставления WaveMaker определенных целочисленных типов SQL с типами Java, что усугубило несогласованность.
Столбцы внешних ключей имеют несогласованные сопоставления типов: в некоторых таблицах поля определены как Integer, а связанные с ними таблицы возвращают BigInteger для того же столбца с логическим идентификатором.
Вопросы
  • Есть ли способ заставить WaveMaker заново генерировать все сопоставления сущностей с нуля на основе текущей схемы базы данных, а не полагаться на кэшированные метаданные из проекта 9.4?
  • Как мы можем устранить несогласованность типов во взаимоотношениях внешних ключей, когда генератор кода WaveMaker создает несовпадающие типы среди связанных сущностей?
  • Существует ли файл конфигурации или сопоставления, который мы можем вручную отредактировать, чтобы указать сопоставления типов Java для определенных столбцов базы данных перед генерацией кода?
  • Кто-нибудь успешно перенес проект WaveMaker 9.x в 10.x с подобными конфликтами типов Integer/BigInteger? Какой подход сработал?
  • Известны ли изменения в том, как WaveMaker 10.6.6 сопоставляет целочисленные типы SQL (INT, BIGINT и т. д.) с типами Java по сравнению с версией 9.4?
Дополнительный контекст
  • Внешние ключи правильно определены в схема базы данных (проверена прямой проверкой базы данных)
  • Ошибки возникают независимо от того, переносимся ли мы напрямую или повторно импортируем сначала в версию 9.4.
  • Мы не можем откатить версии WaveMaker для целей тестирования.
  • Проект успешно создан в WaveMaker 9.4 перед миграцией.
Будем очень признательны за любые рекомендации по устранению этих несоответствий в сопоставлении типов. Эта миграция заблокирована, и нам нужно запустить проект на версии 10.6.6. Спасибо всем за ваш вклад. Я благодарен этому сообществу!

Подробнее здесь: https://stackoverflow.com/questions/798 ... biginteger
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»