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