# jpa

Published articles for jpa.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Meet Jos Roseboom

DevFeed: [Meet Jos Roseboom](<https://devfeed.tech/articles/meet-jos-roseboom-21985.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/meet-jos-roseboom/>)

Author: vladmihalcea

Published: 2026-09-11T04:23:25Z

Content type: article

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Spring Framework](<https://devfeed.tech/topics/spring-framework.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [article](<https://devfeed.tech/tags/article.md>), [blog](<https://devfeed.tech/tags/blog.md>), [community](<https://devfeed.tech/tags/community.md>), [conference](<https://devfeed.tech/tags/conference.md>), [framework](<https://devfeed.tech/tags/framework.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [interview](<https://devfeed.tech/tags/interview.md>), [jakarta-ee](<https://devfeed.tech/tags/jakarta-ee.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>)

### AI overview

An interview with Jos Roseboom about JPA and Hibernate performance tuning, based on his JavaZone talk. He describes production incidents involving exhausted database connections and excessive queries caused by fetching entities and following associations.

### Source excerpt

JavaZone 2026 At the beginning of September, I participated in JavaZone for the third time and had the privilege of meeting a lot of passionate software developers willing to share their knowledge with the community. In the first conference day, I attended a very good talk about JPA performance tuning that was delivered by Jos Roseboom and since I enjoyed his talk, I proposed him to gave an interview for this blog. Therefore, in this article we have the pleasure of getting to know Jos and take opportunity of learning about Spring... Read More The post Meet Jos Roseboom appeared first on Vlad Mihalcea.

## Pale Blue Spring Admin adds CRUD editing and custom UI snippets

DevFeed: [Pale Blue Spring Admin adds CRUD editing and custom UI snippets](<https://devfeed.tech/articles/pale-blue-spring-admin-now-you-can-actually-edit-stuff-and-custom-ui-snippets-38749.md>)

Original publisher: [Read original article](<https://www.paleblueapps.com/rockandnull/spring-boot-admin-crud-custom-ui/>)

Author: Mike Yerou

Published: 2026-05-14T11:57:06Z

Content type: release

Language: en

Sources: [Rock and Null](<https://devfeed.tech/sources/rock-and-null.md>)

Topics: [CRUD](<https://devfeed.tech/topics/crud.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Django Admin](<https://devfeed.tech/topics/django-admin.md>), [jpa](<https://devfeed.tech/topics/jpa.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [ui](<https://devfeed.tech/topics/ui.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [crud](<https://devfeed.tech/tags/crud.md>), [django-admin](<https://devfeed.tech/tags/django-admin.md>), [infra](<https://devfeed.tech/tags/infra.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

The latest Pale Blue Spring Admin release adds create, update, and delete operations directly in the UI. It also introduces custom UI snippets for adding elements such as dashboard widgets and action buttons, extending the admin portal beyond its generated interface.

### Source excerpt

Read-only is great, but editing is better. The latest update to Pale Blue Spring Admin introduces full CRUD functionality and custom UI snippets, making your Spring Boot admin panel as powerful as your favorite Python tools.

## How to emulate LEFT JOIN FETCH using Record-based projections

DevFeed: [How to emulate LEFT JOIN FETCH using Record-based projections](<https://devfeed.tech/articles/how-to-emulate-left-join-fetch-using-record-based-projections-21983.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/emulate-left-join-fetch-using-projections/>)

Author: vladmihalcea

Published: 2026-02-27T08:52:13Z

Content type: tutorial

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Persistence](<https://devfeed.tech/topics/persistence.md>), [Java](<https://devfeed.tech/topics/java.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [fetch](<https://devfeed.tech/tags/fetch.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jakarta-ee](<https://devfeed.tech/tags/jakarta-ee.md>), [java](<https://devfeed.tech/tags/java.md>), [join-fetch](<https://devfeed.tech/tags/join-fetch.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [unrelated](<https://devfeed.tech/tags/unrelated.md>)

### AI overview

This tutorial explains how to emulate a LEFT JOIN FETCH between two root entities without fetching an intermediate child entity. It uses record-based projections and a JPQL query, and describes how the resulting entities remain managed in the persistence context and can produce updates during flush.

### Source excerpt

Introduction In this article, I'm going to show you how to emulate a LEFT JOIN FETCH between two root entities without fetching the intermediate child entity. I got the inspiration for this article by this comment thread on my blog. Domain Model Let's assume we have the following entities: The Post is the root entity of our hierarchy, but just like it's the case with the relational model, the root entity does not have any reference to its children: On the second level of our hierarchy we have the PostDetails: The PostDetails... Read More The post How to emulate LEFT JOIN FETCH using Record-based projections appeared first on Vlad Mihalcea.

## Fixing SQLite Database Locks in Spring Boot with Connection and Transaction Configuration

DevFeed: [Fixing SQLite Database Locks in Spring Boot with Connection and Transaction Configuration](<https://devfeed.tech/articles/how-we-fixed-sqlite-database-locks-in-spring-boot-and-got-a-5x-performance-boost-38750.md>)

Original publisher: [Read original article](<https://www.paleblueapps.com/rockandnull/spring-boot-sqlite-locking-fix/>)

Author: Anil Kumar Beesetti

Published: 2026-01-30T10:36:55Z

Content type: tutorial

Language: en

Sources: [Rock and Null](<https://devfeed.tech/sources/rock-and-null.md>)

Topics: [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [locking](<https://devfeed.tech/topics/locking.md>), [jpa](<https://devfeed.tech/topics/jpa.md>), [optimize](<https://devfeed.tech/topics/optimize.md>)

Tags: [hikaricp](<https://devfeed.tech/tags/hikaricp.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [locking](<https://devfeed.tech/tags/locking.md>), [locks](<https://devfeed.tech/tags/locks.md>), [optimize](<https://devfeed.tech/tags/optimize.md>), [performance](<https://devfeed.tech/tags/performance.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

### AI overview

This tutorial explains how a Spring Boot application using SQLite experienced intermittent database locks and request failures. It attributes the issue to connection pooling and lifecycle settings, then describes configuring HikariCP for a single connection, tightening connection management, enabling leak detection, disabling Open-in-View, and controlling transactions manually. In the reported k6 load test, throughput increased from 1,736 to 11,381 requests in five minutes, success rate rose from 76% to 99%, and failed requests fell from 411 to 1.

### Source excerpt

Struggling with intermittent database locks in your Spring Boot and SQLite setup? Learn the specific HikariCP and JPA configurations we used to eliminate production hangs and increase throughput by 6.5x.

## How Understanding Request Flow in Spring Boot Changed the Way I Code

DevFeed: [How Understanding Request Flow in Spring Boot Changed the Way I Code](<https://devfeed.tech/articles/how-understanding-request-flow-in-spring-boot-changed-the-way-i-code-23021.md>)

Original publisher: [Read original article](<https://www.javaadvent.com/2025/12/how-understanding-request-flow-in-spring-boot-changed-the-way-i-code.html>)

Author: Mohammed

Published: 2025-12-03T02:02:20Z

Content type: article

Language: en

Sources: [Java Advent Calendar](<https://devfeed.tech/sources/java-advent-calendar.md>)

Topics: [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [backend-development](<https://devfeed.tech/topics/backend-development.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [API](<https://devfeed.tech/topics/api.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [api](<https://devfeed.tech/tags/api.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [backend](<https://devfeed.tech/tags/backend.md>), [backend-development](<https://devfeed.tech/tags/backend-development.md>), [controllers](<https://devfeed.tech/tags/controllers.md>), [di](<https://devfeed.tech/tags/di.md>), [java](<https://devfeed.tech/tags/java.md>), [java-advent](<https://devfeed.tech/tags/java-advent.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [programming](<https://devfeed.tech/tags/programming.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [springboot](<https://devfeed.tech/tags/springboot.md>)

### AI overview

This article explains how tracing a request through a Spring Boot application helped the author understand layered backend architecture. It follows the flow from Controller to Service to Repository and Database, and discusses dependency injection, inversion of control, annotations, and the roles of application layers.

### Source excerpt

When I first stepped into backend development, I believed programming was only about one thing: "If the output comes, the job is done." I bundled everything into one giant file -- controllers, logic, database access.I didn't understand why Spring insisted on layers or why DI, IoC, and annotations were so important. The project structure looked [...] The post How Understanding Request Flow in Spring Boot Changed the Way I Code appeared first on JVM Advent.

## The best way to replace the deprecated GenericGenerator

DevFeed: [The best way to replace the deprecated GenericGenerator](<https://devfeed.tech/articles/the-best-way-to-replace-the-deprecated-genericgenerator-21988.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/replace-deprecated-genericgenerator/>)

Author: vladmihalcea

Published: 2025-12-02T08:23:12Z

Content type: tutorial

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Development](<https://devfeed.tech/topics/development.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Code](<https://devfeed.tech/topics/code.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [database-identifier](<https://devfeed.tech/tags/database-identifier.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [genericgenerator](<https://devfeed.tech/tags/genericgenerator.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [tsid](<https://devfeed.tech/tags/tsid.md>)

### AI overview

This tutorial explains how to replace the deprecated Hibernate @GenericGenerator annotation when upgrading an application to Hibernate 7. It covers custom entity identifier generators and sequence optimizers using the @IdGeneratorType meta-annotation.

### Source excerpt

Introduction In this article, I'm going to show you the best way to replace the deprecated @GenericGenerator when upgrading your application to Hibernate 7. Hibernate @GenericGenerator annotation The @GenericGenerator annotation has been available since Hibernate 3.5, as an alternative to the <generator> XML element from HBM mappings. As illustrated by the Hibernate 6.5 @GenericGenerator Javadoc, this annotation was deprecated in favor of the @IdGeneratorType meta-annotation, which we've been using before for the TSID identifier. Traditionally, there were two main use cases where you'd use the @GenericGenerator annotation: to provide a custom identifier... Read More The post The best way to replace the deprecated GenericGenerator appeared first on Vlad Mihalcea.

## Introducing Pale Blue Spring Admin: auto-generated admin UI for Spring Boot

DevFeed: [Introducing Pale Blue Spring Admin: auto-generated admin UI for Spring Boot](<https://devfeed.tech/articles/introducing-pale-blue-spring-admin-auto-generated-admin-ui-for-spring-boot-38746.md>)

Original publisher: [Read original article](<https://www.paleblueapps.com/rockandnull/pale-blue-spring-admin-django-admin-for-spring-boot/>)

Author: Mike Yerou

Published: 2025-11-14T09:54:40Z

Content type: release

Language: en

Sources: [Rock and Null](<https://devfeed.tech/sources/rock-and-null.md>)

Topics: [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Django Admin](<https://devfeed.tech/topics/django-admin.md>), [jpa](<https://devfeed.tech/topics/jpa.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [ui](<https://devfeed.tech/topics/ui.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Back end](<https://devfeed.tech/topics/backend.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [django-admin](<https://devfeed.tech/tags/django-admin.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [library](<https://devfeed.tech/tags/library.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [release](<https://devfeed.tech/tags/release.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

Pale Blue announces Pale Blue Spring Admin, an open-source Kotlin library that adds a Django-inspired admin interface to Spring Boot applications. It discovers JPA entities and provides read-only browsing, search, pagination, sorting, and relationship navigation.

### Source excerpt

Pale Blue Spring Admin brings Django-style auto-generated admin power to Spring Boot. Built in Kotlin, it offers an intuitive UI for exploring your JPA entities.

## Keycloak 26.4.5 released

DevFeed: [Keycloak 26.4.5 released](<https://devfeed.tech/articles/keycloak-26-4-5-released-31736.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2025/11/keycloak-2645-released>)

Author: Keycloak Team

Published: 2025-11-12T00:00:00Z

Content type: release

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [changelog](<https://devfeed.tech/topics/changelog.md>)

Tags: [authorization](<https://devfeed.tech/tags/authorization.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [ci](<https://devfeed.tech/tags/ci.md>), [docs](<https://devfeed.tech/tags/docs.md>), [download](<https://devfeed.tech/tags/download.md>), [email](<https://devfeed.tech/tags/email.md>), [idm](<https://devfeed.tech/tags/idm.md>), [import](<https://devfeed.tech/tags/import.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [keycloak-release](<https://devfeed.tech/tags/keycloak-release.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [migration-guide](<https://devfeed.tech/tags/migration-guide.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [ordering](<https://devfeed.tech/tags/ordering.md>), [quarkus](<https://devfeed.tech/tags/quarkus.md>), [release](<https://devfeed.tech/tags/release.md>), [saml](<https://devfeed.tech/tags/saml.md>), [sso](<https://devfeed.tech/tags/sso.md>), [ui](<https://devfeed.tech/tags/ui.md>)

### AI overview

Keycloak 26.4.5 was released on November 12, 2025. The release page links to downloads and a migration guide and lists resolved issues involving tests, documentation, JPA, email persistence, database migration, authorization policies, attribute ordering, Quarkus builds, URL normalization, and the Admin Console.

### Source excerpt

To download the release go to Keycloak downloads. Upgrading Before upgrading refer to the migration guide for a complete list of changes. All resolved issues Bugs #42601 Flaky test: org.keycloak.testsuite.broker.KcOidcBrokerTest#testPostBrokerLoginFlowWithOTP ci #43212 Document missing artifact dependency for UserStoragePrivateUtil docs #43564 Invalid liquibase check sum for jpa-changelog-2.5.0.xml core #43718 Email Not Persisted During Registration When "Email as Username" is Enabled and User Edit Permission is Disabled user-profile #43793 import does not seem to run db migration import-export #43883 Creating group policy on a client uses "manage-clients" role if FGAP V1 is disabled authorization-services #44010 Ordering attributes will unset the unmanaged attribute policy user-profile #44031 Can't build keycloak 26.4.4 with quarkus.launch.rebuild=true dist/quarkus #44056 Allow only normalized URLs in requests caused a regression in view authz permission details in Admin Consol admin/ui #44117 DockerClientTest failure testsuite

## The best way to clean up test data with Spring and Hibernate

DevFeed: [The best way to clean up test data with Spring and Hibernate](<https://devfeed.tech/articles/the-best-way-to-clean-up-test-data-with-spring-and-hibernate-21982.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/clean-up-test-data-spring/>)

Author: vladmihalcea

Published: 2025-11-11T08:05:24Z

Content type: tutorial

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Integration testing](<https://devfeed.tech/topics/integration-testing.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [Java](<https://devfeed.tech/topics/java.md>), [Spring Framework](<https://devfeed.tech/topics/spring-framework.md>)

Tags: [cleanup](<https://devfeed.tech/tags/cleanup.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [schema](<https://devfeed.tech/tags/schema.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [test-data](<https://devfeed.tech/tags/test-data.md>), [testing](<https://devfeed.tech/tags/testing.md>), [truncatemappedobjects](<https://devfeed.tech/tags/truncatemappedobjects.md>)

### AI overview

This tutorial examines how to clean up test data in Spring and Hibernate integration tests. It argues that relying on @DataJpaTest for automatic transaction rollback is not always appropriate and discusses limitations of its SQL logging, including its inability to show bind parameter values or indicate whether batching is used.

### Source excerpt

Introduction In this article, I'm going to show you the best way to clean up test data when using Spring and Hibernate. While it's very common to use the @DataJpaTest annotation when implementing integration tests, in this blog post, you will see why you are better off avoiding using this annotation. Why I don't use @DataJpaTest As explained by the manual, Spring Boot provides the @DataJpaTest annotation for Spring Data JPA integration testing. Once the @DataJpaTest annotation is added to an integration test, Spring Boot will make the following changes to the... Read More The post The best way to clean up test data with Spring and Hibernate appeared first on Vlad Mihalcea.

## How to map the Oracle TIMESTAMP WITH TIME ZONE with JPA

DevFeed: [How to map the Oracle TIMESTAMP WITH TIME ZONE with JPA](<https://devfeed.tech/articles/how-to-map-the-oracle-timestamp-with-time-zone-with-jpa-21987.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/oracle-timestamp-with-time-zone-jpa/>)

Author: vladmihalcea

Published: 2025-03-18T16:21:37Z

Content type: tutorial

Language: en

Sources: [Vlad Mihalcea](<https://devfeed.tech/sources/vlad-mihalcea.md>)

Topics: [Oracle Database](<https://devfeed.tech/topics/oracle-database.md>), [Java](<https://devfeed.tech/topics/java.md>), [SQL](<https://devfeed.tech/topics/sql.md>)

Tags: [article](<https://devfeed.tech/tags/article.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [offsetdatetime](<https://devfeed.tech/tags/offsetdatetime.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [sql](<https://devfeed.tech/tags/sql.md>), [timezone](<https://devfeed.tech/tags/timezone.md>), [types](<https://devfeed.tech/tags/types.md>), [zoneddatetime](<https://devfeed.tech/tags/zoneddatetime.md>)

### AI overview

A tutorial on mapping Oracle TIMESTAMP WITH TIME ZONE columns to Java date-time types using JPA and Hibernate. It explains how ZonedDateTime and OffsetDateTime correspond to the Oracle column type and how to preserve time zone region information when retrieving values.

### Source excerpt

Introduction In this article, I'm going to explain how to map the Oracle TIMESTAMP WITH TIME ZONE with JPA and Hibernate. While the DATE and TIMESTAMP column types are suitable for mapping the LocalDateTime, the TIMESTAMP WITH TIME ZONE column type allows us to map both the ZonedDateTime and OffsetDateTime. Oracle TIMESTAMP WITH TIME ZONE Traditionally, Oracle provided the DATE and TIMESTAMP column types to store timestamp values. The difference between the DATE and TIMESTAMP types is that the TIMESTAMP column type allows us to store fractional seconds while the DATE type... Read More The post How to map the Oracle TIMESTAMP WITH TIME ZONE with JPA appeared first on Vlad Mihalcea.

## jOOQ 3.20 released with ClickHouse, Databricks, and much more DuckDB support, new modules, Oracle type hierarchies, more spatial support, decfloat and synonym support, hidden columns, Scala 3, Kotlin 2, and much more

DevFeed: [jOOQ 3.20 released with ClickHouse, Databricks, and much more DuckDB support, new modules, Oracle type hierarchies, more spatial support, decfloat and synonym support, hidden columns, Scala 3, Kotlin 2, and much more](<https://devfeed.tech/articles/jooq-3-20-released-with-clickhouse-databricks-and-much-more-duckdb-support-new-modules-oracle-type-hierarchies-more-spatial-support-decfloat-and-synonym-support-hidden-co-28953.md>)

Original publisher: [Read original article](<https://blog.jooq.org/jooq-3-20-released-with-clickhouse-databricks-and-much-more-duckdb-support-new-modules-oracle-type-hierarchies-more-spatial-support-decfloat-and-synonym-support-hidden-columns-scala-3-kotlin/>)

Author: lukaseder

Published: 2025-02-20T10:27:54Z

Content type: release

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [clickhouse](<https://devfeed.tech/topics/clickhouse.md>), [databricks](<https://devfeed.tech/topics/databricks.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [DuckDB](<https://devfeed.tech/topics/duckdb.md>), [modules](<https://devfeed.tech/topics/modules.md>), [Oracle Database](<https://devfeed.tech/topics/oracle-database.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Scala](<https://devfeed.tech/topics/scala.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [jpa](<https://devfeed.tech/topics/jpa.md>)

Tags: [array](<https://devfeed.tech/tags/array.md>), [clickhouse](<https://devfeed.tech/tags/clickhouse.md>), [databricks](<https://devfeed.tech/tags/databricks.md>), [decfloat](<https://devfeed.tech/tags/decfloat.md>), [dirty-tracking](<https://devfeed.tech/tags/dirty-tracking.md>), [dml-join](<https://devfeed.tech/tags/dml-join.md>), [duckdb](<https://devfeed.tech/tags/duckdb.md>), [hidden-columns](<https://devfeed.tech/tags/hidden-columns.md>), [jdk-21](<https://devfeed.tech/tags/jdk-21.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-3-20](<https://devfeed.tech/tags/jooq-3-20.md>), [jooq-development](<https://devfeed.tech/tags/jooq-development.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [json](<https://devfeed.tech/tags/json.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-2](<https://devfeed.tech/tags/kotlin-2.md>), [merge](<https://devfeed.tech/tags/merge.md>), [modules](<https://devfeed.tech/tags/modules.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [oracle-plsql-types](<https://devfeed.tech/tags/oracle-plsql-types.md>), [r2dbc](<https://devfeed.tech/tags/r2dbc.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [scala](<https://devfeed.tech/tags/scala.md>), [scala-3](<https://devfeed.tech/tags/scala-3.md>), [sequences](<https://devfeed.tech/tags/sequences.md>), [spatial](<https://devfeed.tech/tags/spatial.md>), [sql](<https://devfeed.tech/tags/sql.md>)

### AI overview

jOOQ 3.20 introduces experimental ClickHouse and Databricks SQL dialects, improves DuckDB support, adds new integration modules, and expands support for Oracle type hierarchies, spatial features, decfloat, synonyms, hidden columns, Scala 3, and Kotlin 2.

### Source excerpt

New dialects: jOOQ 3.20 ships with 2 new experimental dialects: ClickHouse is a fast-moving SQL dialect with a historic vendor-specific syntax that is gradually migrated to a more standards compliant alternative, which is why our support is still experimental. A lot of behaviours differ from what one would expect elsewhere, including NULL handling, which is ... Continue reading jOOQ 3.20 released with ClickHouse, Databricks, and much more DuckDB support, new modules, Oracle type hierarchies, more spatial support, decfloat and synonym support, hidden columns, Scala 3, Kotlin 2, and much more ->

## A Pattern for Composing Flow Operations

DevFeed: [A Pattern for Composing Flow Operations](<https://devfeed.tech/articles/a-pattern-for-composing-flow-operations-39359.md>)

Original publisher: [Read original article](<https://kt.academy/article/pattern_for_composing_flows>)

Published: 2024-04-15T00:00:00Z

Content type: tutorial

Language: en

Sources: [Kt. Academy](<https://devfeed.tech/sources/kt-academy.md>)

Topics: [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/topics/kotlin-coroutines.md>), [Streams](<https://devfeed.tech/topics/streams.md>), [async](<https://devfeed.tech/topics/async.md>), [backpressure](<https://devfeed.tech/topics/backpressure.md>), [flux](<https://devfeed.tech/topics/flux.md>), [RxJava](<https://devfeed.tech/topics/rxjava.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [backpressure](<https://devfeed.tech/tags/backpressure.md>), [flux](<https://devfeed.tech/tags/flux.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kotlin-coroutines](<https://devfeed.tech/tags/kotlin-coroutines.md>), [rxjava](<https://devfeed.tech/tags/rxjava.md>), [streams](<https://devfeed.tech/tags/streams.md>), [workshop-learning-programming](<https://devfeed.tech/tags/workshop-learning-programming.md>)

### AI overview

This tutorial explains a pattern for composing Kotlin Flow operations by collecting one cold flow within another flow definition. It discusses sequential processing, asynchronous operations, and the limitations of using internal flow types when composing streams.

### Source excerpt

Extending and operating on top of your existing flows

## Keycloak 22.0.5 released

DevFeed: [Keycloak 22.0.5 released](<https://devfeed.tech/articles/keycloak-22-0-5-released-31621.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2023/10/keycloak-2205-released>)

Author: Keycloak Team

Published: 2023-10-24T00:00:00Z

Content type: release

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [changelog](<https://devfeed.tech/topics/changelog.md>)

Tags: [bugs](<https://devfeed.tech/tags/bugs.md>), [github](<https://devfeed.tech/tags/github.md>), [idm](<https://devfeed.tech/tags/idm.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [keycloak-release](<https://devfeed.tech/tags/keycloak-release.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [release](<https://devfeed.tech/tags/release.md>), [saml](<https://devfeed.tech/tags/saml.md>), [sso](<https://devfeed.tech/tags/sso.md>)

### AI overview

Keycloak 22.0.5 is released with enhancements, bug fixes, documentation updates, and other resolved issues. The article directs readers to the Keycloak downloads and migration guide.

### Source excerpt

To download the release go to Keycloak downloads. Upgrading Before upgrading refer to the migration guide for a complete list of changes. All resolved issues Enhancements #14820 Calling getTopLevelGroups is slow inside GroupLDAPStorageMapper#getLDAPGroupMappingsConverted keycloak storage #19348 Sort subgroups keycloak storage #22109 Add non-blocking liveness and readiness checks to Keycloak keycloak dist/quarkus #22200 External Link check for documentation logs warning and exception: WARN FilenoUtil: Native subprocess control requires open access keycloak docs #23581 Code certain topics as upstream only keycloak #23711 Remove recommendation to file a GitHub issue keycloak docs #23800 Add a disclaimer about refererences to Kubernetes keycloak #23856 Allow documentation to be build referencing only Linux, not Windows keycloak #23910 Removing the default cache metadata keycloak #23946 Limit Keycloak 22 Windows support to the Admin CLI to upstream keycloak #23951 Update Keycloak 22 Getting Started keycloak Bugs #22170 Operator secrets sequencing keycloak operator #22600 Keycloak admin v2 theme js mapper adding issue keycloak admin/ui #22960 Do not store empty attributes when updating user profile keycloak user-profile #22982 User attributes can't be saved when user profile is enabled keycloak admin/ui #23220 Update to Keycloak 22.0.3 fails: Migration failed for change set META-INF/jpa-changelog-13.0.0.xml::default-roles::keycloak keycloak storage #23294 admin-fine-grained-authz + client authorization settings requires more realm-management roles keycloak admin/ui #23345 Broken link https://stackapps.com/apps/oauth/register keycloak docs #23397 The "invalid_grant" error occurs again when loading the offline client session with an early creation time. keycloak infinispan #23434 Can not view or update user profile attribute in user details keycloak admin/ui #23507 User cannot be created via Admin UI if custom user attribute is required keycloak admin/ui #23584 Return attri

## Why You Should Execute jOOQ Queries With jOOQ

DevFeed: [Why You Should Execute jOOQ Queries With jOOQ](<https://devfeed.tech/articles/why-you-should-execute-jooq-queries-with-jooq-28974.md>)

Original publisher: [Read original article](<https://blog.jooq.org/why-you-should-execute-jooq-queries-with-jooq/>)

Author: lukaseder

Published: 2023-01-18T11:46:25Z

Content type: opinion

Language: en

Sources: [jOOQ](<https://devfeed.tech/sources/jooq.md>)

Topics: [SQL](<https://devfeed.tech/topics/sql.md>), [Java](<https://devfeed.tech/topics/java.md>), [Databases](<https://devfeed.tech/topics/databases.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>)

Tags: [code-generation](<https://devfeed.tech/tags/code-generation.md>), [crud](<https://devfeed.tech/tags/crud.md>), [csv](<https://devfeed.tech/tags/csv.md>), [execution](<https://devfeed.tech/tags/execution.md>), [export](<https://devfeed.tech/tags/export.md>), [identity](<https://devfeed.tech/tags/identity.md>), [import](<https://devfeed.tech/tags/import.md>), [java](<https://devfeed.tech/tags/java.md>), [jdbc](<https://devfeed.tech/tags/jdbc.md>), [jooq](<https://devfeed.tech/tags/jooq.md>), [jooq-in-use](<https://devfeed.tech/tags/jooq-in-use.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [json](<https://devfeed.tech/tags/json.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [multiset](<https://devfeed.tech/tags/multiset.md>), [nested-collections](<https://devfeed.tech/tags/nested-collections.md>), [nested-records](<https://devfeed.tech/tags/nested-records.md>), [orm](<https://devfeed.tech/tags/orm.md>), [r2dbc](<https://devfeed.tech/tags/r2dbc.md>), [sql](<https://devfeed.tech/tags/sql.md>), [stored-procedures](<https://devfeed.tech/tags/stored-procedures.md>), [type-safety](<https://devfeed.tech/tags/type-safety.md>), [udt](<https://devfeed.tech/tags/udt.md>), [updatablerecord](<https://devfeed.tech/tags/updatablerecord.md>), [user-defined-types](<https://devfeed.tech/tags/user-defined-types.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

The article argues that queries built with jOOQ should generally also be executed with jOOQ. It explains that jOOQ preserves type safety and structured result mapping during execution, whereas extracting SQL and bind values for JDBC-level execution loses compiler knowledge of the result set. It acknowledges limited use cases for executing jOOQ-generated SQL elsewhere, such as a small number of dynamic queries in an otherwise JPA-based application.

### Source excerpt

Previously on this blog, I've written a post explaining why you should use jOOQ's code generator, despite the possibility of using jOOQ without it. In a similar fashion, as I've answered numerous jOOQ questions on Stack Overflow, where someone used jOOQ to build a query, but then executed it elsewhere, including on: jOOQ itself isn't ... Continue reading Why You Should Execute jOOQ Queries With jOOQ ->

## Using Spring Data @DomainEvents with JPA and Hibernate

DevFeed: [Using Spring Data @DomainEvents with JPA and Hibernate](<https://devfeed.tech/articles/poor-s-man-domain-events-27284.md>)

Original publisher: [Read original article](<https://blog.pchudzik.com/201710/domain-events/>)

Published: 2017-10-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Paweł Chudzik](<https://devfeed.tech/sources/pawe-chudzik.md>)

Topics: [jpa](<https://devfeed.tech/topics/jpa.md>), [Hibernate](<https://devfeed.tech/topics/hibernate.md>), [implementation](<https://devfeed.tech/topics/implementation.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [spring](<https://devfeed.tech/tags/spring.md>)

### AI overview

This tutorial examines Spring Data's @DomainEvents and @AfterDomainEventPublication annotations, explains their repository-based event publishing behavior, and discusses why that behavior does not work automatically for commonly used JPA dirty checking. It then presents Hibernate interceptor-based event propagation as an approach for JPA entities.

### Source excerpt

While investigating @EventListeners in spring I've noticed very interesting annotation - @DomainEvents. In this post I'm going to check what can be achieved using @DomainEvents annotation and how to effectively use it with old good JPA. Let's start with short introduction to domain event idea if you are not yet familiar with it. Now let's go back to the @DomainEvents annotation in spring-data. Spring-data by default provides support for this annotation and it's complementary annotation @AfterDomainEventPublication. Read more

## Poor man's batch processing in JPA

DevFeed: [Poor man's batch processing in JPA](<https://devfeed.tech/articles/poor-man-s-batch-processing-in-jpa-27270.md>)

Original publisher: [Read original article](<https://blog.pchudzik.com/201705/batch-processing/>)

Published: 2017-05-16T00:00:00Z

Content type: tutorial

Language: en

Sources: [Paweł Chudzik](<https://devfeed.tech/sources/pawe-chudzik.md>)

Topics: [jpa](<https://devfeed.tech/topics/jpa.md>), [Hibernate](<https://devfeed.tech/topics/hibernate.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [batch](<https://devfeed.tech/tags/batch.md>), [cache](<https://devfeed.tech/tags/cache.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This article explains batch processing with JPA, Hibernate, and Spring Data. It recommends regularly flushing and clearing the persistence context, controlling transaction size, choosing a deterministic data-fetching order, and considering purpose-built frameworks or libraries for the job.

### Source excerpt

Working with a lot of data using plain JPA or hibernate or spring-data is possible, it does work and usually, it doesn't require a lot of extra coding. Starting small is the fastest way of getting things done but you must be aware of few things that might shoot you in the foot. Read more

## Optimistic locking pitfalls

DevFeed: [Optimistic locking pitfalls](<https://devfeed.tech/articles/optimistic-locking-pitfalls-27269.md>)

Original publisher: [Read original article](<https://blog.pchudzik.com/201704/optimistic-locking/>)

Published: 2017-04-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [Paweł Chudzik](<https://devfeed.tech/sources/pawe-chudzik.md>)

Topics: [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>), [.NET 11 Preview 7](<https://devfeed.tech/topics/net-11-preview-7.md>)

Tags: [concurrency-control](<https://devfeed.tech/tags/concurrency-control.md>), [consistency](<https://devfeed.tech/tags/consistency.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [locking](<https://devfeed.tech/tags/locking.md>), [optimistic-locking](<https://devfeed.tech/tags/optimistic-locking.md>), [pitfalls](<https://devfeed.tech/tags/pitfalls.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

This article explains optimistic locking as a concurrency-control technique and examines how plain SQL and JPA/Hibernate version checks prevent one user from unintentionally overwriting another user's changes.

### Source excerpt

Optimistic locking is concurrency control method that allows to execute multiple transactions simultaneously as long as they don't interfere which each other. That's definition from wikipedia. You probably already know that Hibernate supports optimistic locking and all you have to do in order to implement optimistic locking in you app is to add @Version on number or timestamp field and you are good to go. Right? Read more

## Générer le script DDL programmatiquement avec Hibernate 4.x

DevFeed: [Générer le script DDL programmatiquement avec Hibernate 4.x](<https://devfeed.tech/articles/generer-le-script-ddl-programmatiquement-avec-hibernate-4-x-26061.md>)

Original publisher: [Read original article](<https://blog.arkey.fr/2015/08/07/generer-le-script-ddl-programmatiquement-avec-hibernate-4-x/>)

Author: brice.dutheil@gmail.com (Brice Dutheil)

Published: 2015-08-07T15:26:51Z

Content type: tutorial

Language: fr

Sources: [The Coffee Workshop](<https://devfeed.tech/sources/the-coffee-workshop.md>)

Topics: [Code](<https://devfeed.tech/topics/code.md>), [SQL](<https://devfeed.tech/topics/sql.md>), [Framework](<https://devfeed.tech/topics/framework.md>), [modules](<https://devfeed.tech/topics/modules.md>)

Tags: [classes](<https://devfeed.tech/tags/classes.md>), [code](<https://devfeed.tech/tags/code.md>), [framework](<https://devfeed.tech/tags/framework.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [reflections](<https://devfeed.tech/tags/reflections.md>), [scanner](<https://devfeed.tech/tags/scanner.md>), [sql](<https://devfeed.tech/tags/sql.md>), [structure](<https://devfeed.tech/tags/structure.md>)

### AI overview

This tutorial presents programmatic generation of DDL scripts for applications using Hibernate 4.x with non-trivial configurations. It explains passing annotated classes and packages explicitly and using Reflections to scan JPA-annotated classes when hibernate4-maven-plugin is insufficient.

### Source excerpt

Si par hasard votre base donnée est gérée par un véritable DBA, donc avec des scripts SQL. Mais que vous utilisez hibernate pour mapper les tables avec une configuration non triviale, modules bien découpés, package annotés, etc.... Les utilitaires comme hibernate4-maven-plugin ne suffisent plus.

## Modular Persistence

DevFeed: [Modular Persistence](<https://devfeed.tech/articles/modular-persistence-37808.md>)

Original publisher: [Read original article](<https://carlosbecker.com/posts/modular-persistence/>)

Author: Carlos Alexandro Becker

Published: 2012-06-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [Carlos Becker](<https://devfeed.tech/sources/carlos-becker.md>)

Topics: [jpa](<https://devfeed.tech/topics/jpa.md>), [Persistence](<https://devfeed.tech/topics/persistence.md>), [Java](<https://devfeed.tech/topics/java.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [MySQL](<https://devfeed.tech/topics/mysql.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [dao](<https://devfeed.tech/tags/dao.md>), [ide](<https://devfeed.tech/tags/ide.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [maven](<https://devfeed.tech/tags/maven.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [tutorial](<https://devfeed.tech/tags/tutorial.md>)

### AI overview

A step-by-step tutorial for building a modular Java persistence project using Maven, JPA, EclipseLink, MySQL, and Google Guice. It explains how to clone the example code, configure persistence and database bindings, create a DAO, and run tests.

### Source excerpt

Hi everybody!