Я использую JOOQ. JOOQ генерирует метаклассы, которые потом используются для генерации запросов в базу. Окей. Рекомендуется генерировать классы в /target/generated-sources/jooq... Сгенерировал. Но когда я пытаюсь вызвать этот класс в коде, IDEA не видит эти классы.
Подскажите, как мне быть?
Нужно выделить метаклассы в отдельную библиотеку. В одном модуле maven классы генерируются, в других модулях этот модуль проставляется как зависимость и используются сгенерированные метаклассы.
При таком подходе модель базы автоматически отделяется от бизнес-логики.
Рекомендуется генерировать классы в /target/generated-sources/jooq
Это так, но в документации есть раздел (Code generation and version control) в котором вопрос генерации освещается подробнее. Разделяются два общих подхода:
Генерированный код является частью кода приложения.
Метаклассы генерируются в исходном коде (src/main/java), хранятся в системе контроля версий. Генерация проводится, как правило, вручную, а не при сборке, т.к. возможны изменения.
Преимущества:
Недостатки:
Генерированный код является частью производных артефактов.
Метаклассы генерируются в процессе сборки автоматически (target/generated), не хранятся в системе контроля версий.
Преимущества:
Недостатки:
Как правило используют второй подход, чтобы избежать разночтений между БД и Java-кодом, но при необходимости можно использовать как первый подход, так и некое промежуточное решение.
В любом случае метаклассы лучше хранить отдельно.
Продвижение своими сайтами как стратегия роста и независимости