Spring Boot: jOOQ, DSLContext, диалект jOOQ SQL

Использование DSLContext

Свободный API, предлагаемый jOOQ, запускается через интерфейс org.jooq.DSLContext. Spring Boot автоматически настраивает DSLContext как Spring Bean и подключает его к источнику данных вашего приложения. Чтобы использовать DSLContext, вы можете сделать его @Autowired, как показано в следующем примере:

@Component
public class JooqExample implements CommandLineRunner {

    private final DSLContext create;

    @Autowired
    public JooqExample(DSLContext dslContext) {
        this.create = dslContext;
    }

}

Руководство jOOQ имеет тенденцию использовать переменную с именем create для хранения DSLContext.

Затем вы можете использовать DSLContext для построения ваших запросов, как показано в следующем примере:

public List<GregorianCalendar> authorsBornAfter1980() {
    return this.create.selectFrom(AUTHOR)
        .where(AUTHOR.DATE_OF_BIRTH.greaterThan(new GregorianCalendar(1980, 0, 1)))
        .fetch(AUTHOR.DATE_OF_BIRTH);
}

Диалект jOOQ SQL

Если свойство spring.jooq.sql-dialect не было настроено, Spring Boot определяет диалект SQL, который будет использоваться для вашего источника данных. Если Spring Boot не может обнаружить диалект, он использует DEFAULT.

Spring Boot может автоматически настраивать диалекты, поддерживаемые версией jOOQ с открытым исходным кодом.

Настройка jOOQ

Более сложные настройки могут быть достигнуты путем определения ваших собственных определений @Bean, которые используются при создании конфигурации jOOQ. Вы можете определить bean-компоненты для следующих типов jOOQ:

  • ConnectionProvider
  • ExecutorProvider
  • TransactionProvider
  • RecordMapperProvider
  • RecordUnmapperProvider
  • Settings
  • RecordListenerProvider
  • ExecuteListenerProvider
  • VisitListenerProvider
  • TransactionListenerProvider

Вы также можете создать свой собственный org.jooq.Configuration @Bean, если хотите получить полный контроль над конфигурацией jOOQ.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки