# 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.

## Optimistic vs pessimistic locking: choose by contention, not preference

DevFeed: [Optimistic vs pessimistic locking: choose by contention, not preference](<https://devfeed.tech/articles/optimistic-vs-pessimistic-locking-choose-by-contention-not-preference-64322.md>)

Original publisher: [Read original article](<https://ankit-rana.com/logs/62-optimistic-vs-pessimistic-locking/>)

Author: hello@ankit-rana.com

Published: 2026-10-03T00:00:00Z

Content type: article

Language: en

Sources: [Ankit Rana | Mechanical Sympathy](<https://devfeed.tech/sources/ankit-rana-mechanical-sympathy.md>)

Topics: [locking](<https://devfeed.tech/topics/locking.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [concurrency](<https://devfeed.tech/tags/concurrency.md>), [database](<https://devfeed.tech/tags/database.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [locking](<https://devfeed.tech/tags/locking.md>), [optimistic-locking](<https://devfeed.tech/tags/optimistic-locking.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [transactions](<https://devfeed.tech/tags/transactions.md>)

### AI overview

The article compares optimistic and pessimistic database locking, explaining how contention, transaction duration, and retry behavior affect their tradeoffs. It also discusses atomic updates, sharding, and queueing as alternatives for highly contended operations, and recommends keeping transactions short around external calls.

### Source excerpt

Optimistic locking detects conflict at write time using a version column, so readers never block and the cost of a conflict is a wasted transaction plus a retry. Pessimistic locking prevents conflict by taking a lock up front, so work is never wasted and contending writers queue. The crossover is contention: below a few percent conflict rate optimistic wins clearly, above roughly ten percent the retry storm costs more than the queue would have. Both are wrong for a human editing a form, where the correct answer is to show the conflict rather than resolve it.

## JPA Inspired ORM from SQLite to PostgreSQL

DevFeed: [JPA Inspired ORM from SQLite to PostgreSQL](<https://devfeed.tech/articles/jpa-inspired-orm-from-sqlite-to-postgresql-60466.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/orm-session-from-phone-to-server/>)

Author: Shai Almog

Published: 2026-09-27T00:00:00Z

Content type: tutorial

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [Hibernate](<https://devfeed.tech/topics/hibernate.md>), [SQLite](<https://devfeed.tech/topics/sqlite.md>), [PostgreSQL](<https://devfeed.tech/topics/postgresql.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [client](<https://devfeed.tech/tags/client.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>), [mariadb](<https://devfeed.tech/tags/mariadb.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [optimistic-locking](<https://devfeed.tech/tags/optimistic-locking.md>), [orm](<https://devfeed.tech/tags/orm.md>), [postgresql](<https://devfeed.tech/tags/postgresql.md>), [queries](<https://devfeed.tech/tags/queries.md>), [relationships](<https://devfeed.tech/tags/relationships.md>), [sqlite](<https://devfeed.tech/tags/sqlite.md>)

### AI overview

This tutorial introduces managed ORM sessions for shared Java entities used on a client and backend. It explains relationship mappings, persistence and transactions, generated metadata, session behavior, and optimistic locking, with client-side SQLite and backend support for SQLite, PostgreSQL, MySQL, and MariaDB.

### Source excerpt

Use managed ORM sessions, relationships, lazy loading, JPQL queries, and optimistic locking with shared Java entities on the client and backend.

## The @Find Annotation in Hibernate

DevFeed: [The @Find Annotation in Hibernate](<https://devfeed.tech/articles/the-find-annotation-in-hibernate-60329.md>)

Original publisher: [Read original article](<https://www.baeldung.com/java-hibernate-find-annotation>)

Author: Graham Cox

Published: 2026-09-26T04:20:54Z

Content type: tutorial

Language: en

Sources: [Baeldung](<https://devfeed.tech/sources/baeldung.md>)

Topics: [Hibernate](<https://devfeed.tech/topics/hibernate.md>), [Repository](<https://devfeed.tech/topics/repository.md>), [Java](<https://devfeed.tech/topics/java.md>), [jpa](<https://devfeed.tech/topics/jpa.md>), [annotation-processor](<https://devfeed.tech/topics/annotation-processor.md>), [Database](<https://devfeed.tech/topics/database.md>), [Maven](<https://devfeed.tech/topics/maven.md>), [implementation](<https://devfeed.tech/topics/implementation.md>)

Tags: [database](<https://devfeed.tech/tags/database.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [implementation](<https://devfeed.tech/tags/implementation.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [jpa-hibernate](<https://devfeed.tech/tags/jpa-hibernate.md>), [maven](<https://devfeed.tech/tags/maven.md>), [repository](<https://devfeed.tech/tags/repository.md>)

### AI overview

This tutorial explains how to use Hibernate's @Find annotation with method query naming conventions. It covers Hibernate setup, Jakarta Data dependencies, compile-time repository generation, database entities, repository interfaces, and dependency injection.

### Source excerpt

Learn about how to use the @Find annotation in Hibernate to generate a repository implementation using method query naming conventions. The post The @Find Annotation in Hibernate first appeared on Baeldung.

## What I learned at DevTalks Cluj-Napoca 2026

DevFeed: [What I learned at DevTalks Cluj-Napoca 2026](<https://devfeed.tech/articles/what-i-learned-at-devtalks-cluj-napoca-2026-60202.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/devtalks-cluj-napoca-2026/>)

Author: vladmihalcea

Published: 2026-09-25T19:10:03Z

Content type: article

Language: en

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

Topics: [Java](<https://devfeed.tech/topics/java.md>), [software-architecture](<https://devfeed.tech/topics/software-architecture.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>), [modular-monolith](<https://devfeed.tech/topics/modular-monolith.md>), [Hibernate](<https://devfeed.tech/topics/hibernate.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Microservices](<https://devfeed.tech/topics/microservices.md>), [Spring Framework](<https://devfeed.tech/topics/spring-framework.md>), [Software](<https://devfeed.tech/topics/software.md>), [Jakarta EE](<https://devfeed.tech/topics/jakarta-ee.md>)

Tags: [conference](<https://devfeed.tech/tags/conference.md>), [effective-learning](<https://devfeed.tech/tags/effective-learning.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [micronaut](<https://devfeed.tech/tags/micronaut.md>), [microservices](<https://devfeed.tech/tags/microservices.md>), [modular-monolith](<https://devfeed.tech/tags/modular-monolith.md>), [public-speaking](<https://devfeed.tech/tags/public-speaking.md>), [quarkus](<https://devfeed.tech/tags/quarkus.md>), [software-architecture](<https://devfeed.tech/tags/software-architecture.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [spring-framework](<https://devfeed.tech/tags/spring-framework.md>)

### AI overview

The author recounts attending DevTalks Cluj-Napoca 2026, moderating the Java track, giving a talk, and hosting a panel on Java software development in the age of AI. The article discusses sessions on software architecture, modular monoliths with Spring Modulith, and choosing a modular monolith rather than microservices for some Java applications.

### Source excerpt

Introduction On the 24th of September, I participated in the 9th edition of DevTalks Cluj-Napoca, and since I had a really great time attending this conference, I decided to share what I learned from attending sessions and having conversations with both speakers and participants. DevTalks DevTalks runs several conferences throughout Romania, and while the one in Bucharest is very large, featuring 14 stanges, we are lucky to have on in Cluj-Napoca, my home town, which manages to run 3 parallel tracks on which 40 speakers present their latest findings. This year, the... Read More The post What I learned at DevTalks Cluj-Napoca 2026 appeared first on Vlad Mihalcea.

## Apple Shouldn't Dictate Your App's Redesign Schedule

DevFeed: [Apple Shouldn't Dictate Your App's Redesign Schedule](<https://devfeed.tech/articles/apple-shouldn-t-dictate-your-app-s-redesign-schedule-59793.md>)

Original publisher: [Read original article](<https://www.codenameone.com/blog/who-decides-your-app-redesign/>)

Author: Shai Almog

Published: 2026-09-25T00:00:00Z

Content type: release

Language: en

Sources: [CodeName One](<https://devfeed.tech/sources/codename-one.md>)

Topics: [App](<https://devfeed.tech/topics/app.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Object-relational mapping](<https://devfeed.tech/topics/orm.md>), [Xcode](<https://devfeed.tech/topics/xcode.md>), [OpenTelemetry](<https://devfeed.tech/topics/opentelemetry.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Java](<https://devfeed.tech/topics/java.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [apple](<https://devfeed.tech/tags/apple.md>), [backend](<https://devfeed.tech/tags/backend.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [liquid-glass](<https://devfeed.tech/tags/liquid-glass.md>), [opentelemetry](<https://devfeed.tech/tags/opentelemetry.md>), [orm](<https://devfeed.tech/tags/orm.md>), [websockets](<https://devfeed.tech/tags/websockets.md>), [xcode](<https://devfeed.tech/tags/xcode.md>)

### AI overview

Codename One announces a series of updates covering optional iOS 27 Liquid Glass themes, Xcode 27 builds, a JPA-inspired ORM, OpenTelemetry, WebSockets, push delivery callbacks, and native desktop themes.

### Source excerpt

Adopt Xcode 27 without moving your redesign schedule. This week: Liquid Glass, JPA inspired ORM, OpenTelemetry, WebSockets, push callbacks, and native desktop themes.

## 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: [performance-engineering](<https://devfeed.tech/topics/performance-engineering.md>), [coding-community](<https://devfeed.tech/topics/coding-community.md>), [Tool](<https://devfeed.tech/topics/tool.md>), [SINGAJUG](<https://devfeed.tech/topics/singajug.md>), [AI Chat](<https://devfeed.tech/topics/ai-chat.md>), [software-development](<https://devfeed.tech/topics/software-development.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [ai](<https://devfeed.tech/tags/ai.md>), [ai-agents](<https://devfeed.tech/tags/ai-agents.md>), [boot](<https://devfeed.tech/tags/boot.md>), [community](<https://devfeed.tech/tags/community.md>), [conference](<https://devfeed.tech/tags/conference.md>), [developers](<https://devfeed.tech/tags/developers.md>), [ee](<https://devfeed.tech/tags/ee.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>), [micronaut](<https://devfeed.tech/tags/micronaut.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-tuning](<https://devfeed.tech/tags/performance-tuning.md>), [play](<https://devfeed.tech/tags/play.md>), [quarkus](<https://devfeed.tech/tags/quarkus.md>), [spring](<https://devfeed.tech/tags/spring.md>)

### AI overview

Jos Roseboom describes two recurring production problems he encountered: requests exhausted all database connections while waiting on a failing external system, leaving the application unresponsive; and an application became very slow because it fetched entities and traversed associations, issuing far too many queries. He traces the latter to assuming Hibernate removes the need to understand SQL. The excerpt frames these as lessons from repeated incidents across companies, but does not include his full interview or the tuning remedies.

### 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>), [User Interfaces](<https://devfeed.tech/topics/user-interfaces.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.

## 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>), [Optimization](<https://devfeed.tech/topics/optimization.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.

## 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: [GenericGenerator](<https://devfeed.tech/topics/genericgenerator.md>), [software-development](<https://devfeed.tech/topics/software-development.md>), [Legacy Modernization](<https://devfeed.tech/topics/legacy-modernization.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [annotation](<https://devfeed.tech/tags/annotation.md>), [boot](<https://devfeed.tech/tags/boot.md>), [custom](<https://devfeed.tech/tags/custom.md>), [database-identifier](<https://devfeed.tech/tags/database-identifier.md>), [deprecated](<https://devfeed.tech/tags/deprecated.md>), [genericgenerator](<https://devfeed.tech/tags/genericgenerator.md>), [hbm](<https://devfeed.tech/tags/hbm.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [identifier](<https://devfeed.tech/tags/identifier.md>), [jakarta-ee](<https://devfeed.tech/tags/jakarta-ee.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [micronaut](<https://devfeed.tech/tags/micronaut.md>), [performance](<https://devfeed.tech/tags/performance.md>), [play](<https://devfeed.tech/tags/play.md>), [tsid](<https://devfeed.tech/tags/tsid.md>), [xml](<https://devfeed.tech/tags/xml.md>)

### AI overview

Hibernate's `@GenericGenerator`, deprecated in favor of `@IdGeneratorType`, served two main purposes: defining a custom identifier generator and supplying a sequence optimizer. The excerpt focuses on replacing custom identifier generation: it uses a time-sorted ID (TSID) generator and explains that `@IdGeneratorType` enables a custom annotation on an entity attribute so Hibernate can generate IDs during persistence. The article says Hypersistence Utils already provides the needed classes, while introducing the meta-annotation mechanism. The supplied excerpt cuts off before the example is complete, so it does not establish the full mapping or the sequence-optimizer replacement.

### 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>), [User Interfaces](<https://devfeed.tech/topics/user-interfaces.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: article

Language: en

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

Topics: [Hibernate](<https://devfeed.tech/topics/hibernate.md>), [Software Testing](<https://devfeed.tech/topics/software-testing.md>), [Spring Framework](<https://devfeed.tech/topics/spring-framework.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [test data](<https://devfeed.tech/topics/test-data.md>), [Test automation](<https://devfeed.tech/topics/test-automation.md>)

Tags: [batching](<https://devfeed.tech/tags/batching.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [cleanup](<https://devfeed.tech/tags/cleanup.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [integration-testing](<https://devfeed.tech/tags/integration-testing.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [logging](<https://devfeed.tech/tags/logging.md>), [schema](<https://devfeed.tech/tags/schema.md>), [spring](<https://devfeed.tech/tags/spring.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [spring-data-jpa](<https://devfeed.tech/tags/spring-data-jpa.md>), [test](<https://devfeed.tech/tags/test.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

The excerpt recommends avoiding `@DataJpaTest` when its default test behavior gets in the way of better SQL logging or realistic transaction handling. It says the annotation auto-configures JPA-related Spring beans, logs SQL to the console, and wraps each test in a transaction that is rolled back afterward. The author argues Spring's SQL logging property cannot show bind values or whether batching is used, and recommends DataSource-Proxy for richer logging and automatic detection of N+1 query issues during tests. The excerpt begins to explain problems with rollback-based test transactions but cuts off before giving the proposed cleanup approach, so it does not establish the article's full recommendation for cleaning test data.

### 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.

## Foundations of AI and Machine Learning for Java Developers Course Review

DevFeed: [Foundations of AI and Machine Learning for Java Developers Course Review](<https://devfeed.tech/articles/foundations-of-ai-and-machine-learning-for-java-developers-course-review-21984.md>)

Original publisher: [Read original article](<https://vladmihalcea.com/foundations-of-ai-and-ml-course-review/>)

Author: vladmihalcea

Published: 2025-04-11T08:26:55Z

Content type: article

Language: en

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

Topics: [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Machine learning](<https://devfeed.tech/topics/machine-learning.md>), [Learning](<https://devfeed.tech/topics/learning.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [AI Development](<https://devfeed.tech/topics/ai-development.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [ai-and-machine-learning](<https://devfeed.tech/tags/ai-and-machine-learning.md>), [article](<https://devfeed.tech/tags/article.md>), [artificial-intelligence](<https://devfeed.tech/tags/artificial-intelligence.md>), [course](<https://devfeed.tech/tags/course.md>), [design-patterns](<https://devfeed.tech/tags/design-patterns.md>), [developers](<https://devfeed.tech/tags/developers.md>), [foundations](<https://devfeed.tech/tags/foundations.md>), [genai](<https://devfeed.tech/tags/genai.md>), [generative-ai](<https://devfeed.tech/tags/generative-ai.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [jakarta-ee](<https://devfeed.tech/tags/jakarta-ee.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [language-models](<https://devfeed.tech/tags/language-models.md>), [large-language-models](<https://devfeed.tech/tags/large-language-models.md>), [learning](<https://devfeed.tech/tags/learning.md>), [llm](<https://devfeed.tech/tags/llm.md>), [machine-learning](<https://devfeed.tech/tags/machine-learning.md>), [ml](<https://devfeed.tech/tags/ml.md>), [review](<https://devfeed.tech/tags/review.md>)

### AI overview

Frank Greco's Foundations of AI and Machine Learning for Java Developers is a 1-hour-35-minute video course for learners new to AI and ML. Its agenda moves from machine-learning foundations and AI taxonomy to predictive AI with JSR #381 Visual Recognition, including code to train and use a model. It then covers generative AI, large language models, prompts and context, retrieval-augmented generation, and ways to access LLM services through stateless REST APIs, with Java and LC4J examples and a demo. The excerpt also lists software development patterns and determinism versus...; the agenda is cut off there, so later material cannot be summarized. The article says LinkedIn Learning offered the course free until June 20, without specifying a year.

### Source excerpt

Introduction In this article, I'm going to review the Foundations of AI and Machine Learning for Java Developers video course from my fellow Java Champion, Frank Greco. If you are new to AI and ML and want to get a great introduction to these topics, then you should definitely join watch the video lessons created by Frank Greco. And, thanks to LinkedIn Learning's generosity, until June 20, you can enroll in this video course for free. Video Course Agenda The course provides one hour and thirty-five minutes of video lessons that are... Read More The post Foundations of AI and Machine Learning for Java Developers Course Review 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: [jpa](<https://devfeed.tech/topics/jpa.md>), [Oracle Database](<https://devfeed.tech/topics/oracle-database.md>), [OffsetDateTime](<https://devfeed.tech/topics/offsetdatetime.md>), [data type](<https://devfeed.tech/topics/data-type.md>)

Tags: [allows](<https://devfeed.tech/tags/allows.md>), [article](<https://devfeed.tech/tags/article.md>), [column](<https://devfeed.tech/tags/column.md>), [explain](<https://devfeed.tech/tags/explain.md>), [hibernate](<https://devfeed.tech/tags/hibernate.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [i](<https://devfeed.tech/tags/i.md>), [introduction](<https://devfeed.tech/tags/introduction.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [map](<https://devfeed.tech/tags/map.md>), [mapping](<https://devfeed.tech/tags/mapping.md>), [offsetdatetime](<https://devfeed.tech/tags/offsetdatetime.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [store](<https://devfeed.tech/tags/store.md>), [this](<https://devfeed.tech/tags/this.md>), [time](<https://devfeed.tech/tags/time.md>), [timezone](<https://devfeed.tech/tags/timezone.md>), [type](<https://devfeed.tech/tags/type.md>), [types](<https://devfeed.tech/tags/types.md>), [values](<https://devfeed.tech/tags/values.md>), [with](<https://devfeed.tech/tags/with.md>), [zoneddatetime](<https://devfeed.tech/tags/zoneddatetime.md>)

### AI overview

Oracle TIMESTAMP WITH TIME ZONE stores fractional seconds plus time zone region or offset, unlike Oracle DATE and TIMESTAMP, which do not store time zone information. The article says it can map to Java ZonedDateTime or OffsetDateTime. For a column storing a region, the excerpt shows a ZonedDateTime mapping and explains that Hibernate's default handling reads the value as an OffsetDateTime; explicitly selecting the appropriate Hibernate type is needed to retain the region when fetching. The excerpt ends during the fetch example and does not provide the complete mapping code or OffsetDateTime details.

### 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 ->

## Quarkus Newsletter #45 - June

DevFeed: [Quarkus Newsletter #45 - June](<https://devfeed.tech/articles/quarkus-newsletter-45-june-43911.md>)

Original publisher: [Read original article](<https://quarkus.io/blog/quarkus-newsletter-45/>)

Author: James Cobb (https://twitter.com/insectengine)

Published: 2024-06-12T00:00:00Z

Content type: article

Language: en

Sources: [Quarkus - Supersonic Subatomic Java](<https://devfeed.tech/sources/quarkus-supersonic-subatomic-java.md>)

Topics: [Quarkus](<https://devfeed.tech/topics/quarkus.md>), [Java](<https://devfeed.tech/topics/java.md>), [software-development](<https://devfeed.tech/topics/software-development.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [observability](<https://devfeed.tech/topics/observability.md>), [reactive](<https://devfeed.tech/topics/reactive.md>), [Serverless](<https://devfeed.tech/topics/serverless.md>), [Grafana](<https://devfeed.tech/topics/grafana.md>), [jpa](<https://devfeed.tech/topics/jpa.md>), [podman](<https://devfeed.tech/topics/podman.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [containerized](<https://devfeed.tech/tags/containerized.md>), [genai](<https://devfeed.tech/tags/genai.md>), [grafana](<https://devfeed.tech/tags/grafana.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [llms](<https://devfeed.tech/tags/llms.md>), [podman](<https://devfeed.tech/tags/podman.md>), [podman-desktop](<https://devfeed.tech/tags/podman-desktop.md>), [programming](<https://devfeed.tech/tags/programming.md>), [quarkus](<https://devfeed.tech/tags/quarkus.md>), [reactive](<https://devfeed.tech/tags/reactive.md>), [serverless](<https://devfeed.tech/tags/serverless.md>)

### AI overview

Quarkus Newsletter #45 highlights articles and episodes about running containerized LLMs and AI-infused Java applications, observability extensions using Grafana, Jaeger, OpenTelemetry, and VictoriaMetrics, reactive programming with Vert.x, and deploying a serverless Quarkus JPA application on Kubernetes with Knative Minikube.

### Source excerpt

The June newsletter includes some great new articles. Discover the simple and easy way to quickly get up and running with containerized LLMs and AI-infused Quarkus applications in Java with "GenAI in Java With Merlinite, Quarkus, and Podman Desktop AI Lab" by Markus Eisele. Read "Quarkus Java framework adds dev extensions for observability" by Paul Krill to learn about the latest update to the Kubernetes-native Java stack introduces dev extensions for Grafana, Jaeger, OTel, and VictoriaMetrics. Reza Ganji's article: "The Magic of Quarkus With Vert.x in Reactive Programming" will explore reactive programming in Quarkus, along with detailed insights and practical examples in Java to illustrate its transformative capabilities. Follow this step-by-step guide on deploying the Serverless Quarkus Book app in Knative Minikube (Kubernetes) in "Deploying Serverless Quarkus JPA App in Knative Minikube (Kubernetes)" by Ivan Franchin You will also see the latest Quarkus Insights episodes, top tweets and upcoming Quarkus attended events. Check out Newsletter #45: June! Want to get newsletters in your inbox? Sign up for the newsletter using the on page form.

## 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>), [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

## Mastering Testing Efficiency in Spring Boot: Optimization Strategies and Best Practices

DevFeed: [Mastering Testing Efficiency in Spring Boot: Optimization Strategies and Best Practices](<https://devfeed.tech/articles/mastering-testing-efficiency-in-spring-boot-optimization-strategies-and-best-practices-47462.md>)

Original publisher: [Read original article](<https://engineering.zalando.com/posts/2023/11/mastering-testing-efficiency-in-spring-boot-optimization-strategies-and-best-practices.html>)

Author: Hassan Elseoudy

Published: 2023-11-13T23:00:00Z

Content type: tutorial

Language: en

Sources: [Zalando](<https://devfeed.tech/sources/zalando-engineering-blog.md>)

Topics: [Software Testing](<https://devfeed.tech/topics/software-testing.md>), [Spring Boot](<https://devfeed.tech/topics/spring-boot.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>)

Tags: [backend](<https://devfeed.tech/tags/backend.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [frameworks](<https://devfeed.tech/tags/frameworks.md>), [java](<https://devfeed.tech/tags/java.md>), [jpa](<https://devfeed.tech/tags/jpa.md>), [junit](<https://devfeed.tech/tags/junit.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [lead-time](<https://devfeed.tech/tags/lead-time.md>), [optimization](<https://devfeed.tech/tags/optimization.md>), [spring-boot](<https://devfeed.tech/tags/spring-boot.md>), [testing](<https://devfeed.tech/tags/testing.md>), [zalando](<https://devfeed.tech/tags/zalando.md>)

### AI overview

A tutorial on improving Spring Boot test efficiency with JUnit. It explains test slicing, selective application-context loading, and replacing full-context tests with focused JPA tests to reduce runtime and improve development lead time.

### Source excerpt

Unlock the secrets to supercharging your Spring Boot tests! Explore how we utilized specific techniques, resulting in a 60% reduction in test runtime!

## 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>), [Database](<https://devfeed.tech/topics/database.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](<https://devfeed.tech/topics/net.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

## 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>), [software-architecture](<https://devfeed.tech/topics/software-architecture.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!