JOOQ Code Generator пропускает класс, который содержит поле JsonNode - PullRequest
2 голосов
/ 06 июня 2019

В настоящее время я работаю над проектом, который использует JOOQ для транзакций sql с Postgres.Но одна из моделей имеет поле типа JsonNode (jsonb в postgres).Генератор кода JOOQ не поддерживает это, поэтому я добавил пользовательскую привязку, которая должна была решить проблему, но, хотя привязка загружена, она никогда не применяется к конкретной модели, а генератор просто пропускает эту модель.

Мой стек(в демоверсии): JOOQ Hibernate Jackson.

Демонстрационный проект предоставляет две модели, одну действительную и одну с JsonNode, чтобы показать, что генератор действительно работает и сканирует модели, но пропускает модель, содержащую поле JsonNode.

Я уже пробовал различные имена в поле выражения принудительного типа:. simplename. ,. SIMPLENAME. ,. impl. ,. IMPL. ,. json. ,. JSON. ,. jsonb. ,. JSONB. ,

попытался установить настройку sql в привязке к :: json, :: jsonb, :: _ jsonb

попытался установить тип регистра в Types.VARCHAR, Types.OTHER, Types.JAVA_OBJECT

В следующем репо https://github.com/mmichailidis/JooqDemo содержится проект, который повторяетустранить проблему

Ожидаемый вывод для обеих моделей, которые будут сгенерированы в папке, сгенерированной jooq, но генерируется только та, у которой нет JsonNode.

1 Ответ

0 голосов
/ 06 июня 2019

Вы используете JPADatabase: https://www.jooq.org/doc/latest/manual/code-generation/codegen-jpa

В том виде, в котором он реализован в настоящее время, вы не можете обработать свои сущности с JPADatabase в тех же фазах Maven, что и сами сущности, скомпилированные.Они еще не доступны на пути к классам JPADatabase.Вы должны извлечь ваши сущности в отдельный проект и сгенерировать код jOOQ на втором шаге.

Причина, по которой вы можете увидеть одну из моделей, может заключаться в том, что вы ранее установили их в своем локальном хранилище другим способом..

...