41554 blogs · [ { "id": "01a0da4c-61ae-72ad-b41f-0453df6762a6", "title": "What I learned at DevTalks Cluj-Napoca 2026", "url": "https://vladmihalcea.com/devtalks-cluj-napoca-2026/", "published_at": "2026-09-25T19:10:03+00:00" }, { "id": "01a094b6-1100-714e-9c89-25026f78fdfb", "title": "Meet Jos Roseboom", "url": "https://vladmihalcea.com/meet-jos-roseboom/", "published_at": "2026-09-11T04:23:25+00:00" }, { "id": "01a0821f-2f8e-72e2-811b-b6568aa2bc51", "title": "How to emulate LEFT JOIN FETCH using Record-based projections", "url": "https://vladmihalcea.com/emulate-left-join-fetch-using-projections/", "published_at": "2026-02-27T08:52:13+00:00" }, { "id": "01a0821f-2f8e-72e2-811b-b6568b820359", "title": "The best way to replace the deprecated GenericGenerator", "url": "https://vladmihalcea.com/replace-deprecated-genericgenerator/", "published_at": "2025-12-02T08:23:12+00:00" }, { "id": "01a0821f-2f8e-72e2-811b-b6568bc70651", "title": "Book Review – Just Use Postgres!", "url": "https://vladmihalcea.com/book-review-just-use-postgres/", "published_at": "2025-11-24T09:00:34+00:00" }, { "id": "01a0821f-2f8e-72e2-811b-b6568c65c28d", "title": "The best way to clean up test data with Spring and Hibernate", "url": "https://vladmihalcea.com/clean-up-test-data-spring/", "published_at": "2025-11-11T08:05:24+00:00" }, { "id": "01a0821f-2f8e-72e2-811b-b6568cd5d23d", "title": "Book Review – Troubleshooting Java", "url": "https://vladmihalcea.com/book-review-troubleshooting-java/", "published_at": "2025-10-15T08:28:01+00:00" }, { "id": "01a0821f-2f8e-72e2-811b-b6568d3c1bf8", "title": "Twelve years of blogging", "url": "https://vladmihalcea.com/twelve-years-of-blogging/", "published_at": "2025-09-30T11:35:44+00:00" }, { "id": "01a0821f-2f8e-72e2-811b-b6568e0167a8", "title": "MySQL Query Optimization with Releem", "url": "https://vladmihalcea.com/mysql-query-optimization-releem/", "published_at": "2025-05-12T18:46:00+00:00" }, { "id": "01a0821f-2f8e-72e2-811b-b6568efad80f", "title": "Foundations of AI and Machine Learning for Java Developers Course Review", "url": "https://vladmihalcea.com/foundations-of-ai-and-ml-course-review/", "published_at": "2025-04-11T08:26:55+00:00" }, { "id": "01a0821f-2f8e-72e2-811b-b6568f246a5a", "title": "How to map the Oracle TIMESTAMP WITH TIME ZONE with JPA", "url": "https://vladmihalcea.com/oracle-timestamp-with-time-zone-jpa/", "published_at": "2025-03-18T16:21:37+00:00" }, { "id": "01a0821f-2f8e-72e2-811b-b6569017fac5", "title": "MySQL Performance Tuning with Releem", "url": "https://vladmihalcea.com/mysql-performance-tuning-releem/", "published_at": "2025-02-10T18:04:50+00:00" }, { "id": "01a0e1f1-c06b-7202-a0f5-e7999a8259cf", "title": "Why you should use compact table columns", "url": "https://vladmihalcea.com/compact-table-columns/", "published_at": "2025-01-14T12:10:05+00:00" }, { "id": "01a0e1f1-c06b-7202-a0f5-e7999b776282", "title": "High-Performance Java Persistence Newsletter, Issue 69", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-69/", "published_at": "2024-12-12T17:50:30+00:00" }, { "id": "01a0e1f1-c06b-7202-a0f5-e7999b9fa45d", "title": "Avoid using Set for bidirectional JPA OneToMany collections", "url": "https://vladmihalcea.com/set-bidirectional-onetomany/", "published_at": "2024-11-26T17:53:03+00:00" }, { "id": "01a0e1f1-c06b-7202-a0f5-e7999bb30027", "title": "JTA Transaction Type", "url": "https://vladmihalcea.com/jta-transaction-type/", "published_at": "2024-11-14T12:29:20+00:00" }, { "id": "01a0e1f1-c06b-7202-a0f5-e7999c4fad1e", "title": "The best way to determine the optimal connection pool size", "url": "https://vladmihalcea.com/optimal-connection-pool-size/", "published_at": "2024-11-07T14:37:51+00:00" }, { "id": "01a0e1f1-c06b-7202-a0f5-e7999d2d1dda", "title": "High-Performance Java Persistence Newsletter, Issue 68", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-68/", "published_at": "2024-11-01T08:00:39+00:00" }, { "id": "01a0e1f1-c06b-7202-a0f5-e7999dae2685", "title": "How to use LazyConnectionDataSourceProxy with Spring Data JPA", "url": "https://vladmihalcea.com/lazyconnectiondatasourceproxy-spring-data-jpa/", "published_at": "2024-10-25T15:22:26+00:00" }, { "id": "01a0e1f1-c06b-7202-a0f5-e7999dd7dac7", "title": "RESOURCE_LOCAL JPA Transaction Type", "url": "https://vladmihalcea.com/resource_local-jpa-transaction-type/", "published_at": "2024-10-14T17:00:16+00:00" }, { "id": "01a0e1f9-6cae-702e-95f4-027d1853a159", "title": "High-Performance Java Persistence Newsletter, Issue 67", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-67/", "published_at": "2024-10-07T09:40:50+00:00" }, { "id": "01a0e1f9-6cae-702e-95f4-027d188a7c2c", "title": "Eleven years of blogging", "url": "https://vladmihalcea.com/eleven-years-of-blogging/", "published_at": "2024-09-30T06:00:53+00:00" }, { "id": "01a0e1f9-6cae-702e-95f4-027d19710546", "title": "Keyset Pagination with Spring Data WindowIterator", "url": "https://vladmihalcea.com/spring-data-windowiterator/", "published_at": "2024-09-26T19:35:19+00:00" }, { "id": "01a0e1f9-6cae-702e-95f4-027d1a226d8f", "title": "A beginner’s guide to Spring Data Envers", "url": "https://vladmihalcea.com/spring-data-envers/", "published_at": "2024-09-19T13:50:33+00:00" }, { "id": "01a0e1f9-6cae-702e-95f4-027d1abeefb4", "title": "Embeddable Inheritance with JPA and Hibernate", "url": "https://vladmihalcea.com/embeddable-inheritance-jpa-hibernate/", "published_at": "2024-09-10T05:15:35+00:00" }, { "id": "01a0e1f9-6cae-702e-95f4-027d1b698263", "title": "High-Performance Java Persistence Newsletter, Issue 66", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-66/", "published_at": "2024-09-02T16:30:20+00:00" }, { "id": "01a0e1f9-6cae-702e-95f4-027d1b82cafc", "title": "Custom Spring Boot Actuator Endpoint", "url": "https://vladmihalcea.com/custom-spring-boot-actuator-endpoint/", "published_at": "2024-08-26T12:46:45+00:00" }, { "id": "01a0e1f9-6cae-702e-95f4-027d1bfa70aa", "title": "How to integrate Jakarta Data with Spring and Hibernate", "url": "https://vladmihalcea.com/jakarta-data-spring-hibernate/", "published_at": "2024-08-19T09:46:09+00:00" }, { "id": "01a0e1f9-6cae-702e-95f4-027d1c031aae", "title": "High-Performance Java Persistence Newsletter, Issue 65", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-65/", "published_at": "2024-08-06T11:09:27+00:00" }, { "id": "01a0e1f9-6cae-702e-95f4-027d1c4aa8c0", "title": "Hibernate SoftDelete annotation", "url": "https://vladmihalcea.com/hibernate-softdelete-annotation/", "published_at": "2024-07-30T08:00:39+00:00" }, { "id": "01a0e204-f7b0-731d-9e5a-a82a1f8857bd", "title": "How to use symbolic links to move the DB data folder", "url": "https://vladmihalcea.com/symbolic-link-data-folder/", "published_at": "2024-07-24T10:03:26+00:00" }, { "id": "01a0e204-f7b1-70a9-8af6-3ed7c8dd5681", "title": "Book Review – Beginning Helidon", "url": "https://vladmihalcea.com/book-review-beginning-helidon/", "published_at": "2024-07-10T09:00:17+00:00" }, { "id": "01a0e204-f7b1-70a9-8af6-3ed7c906a2d5", "title": "High-Performance Java Persistence Newsletter, Issue 64", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-64/", "published_at": "2024-07-02T13:16:13+00:00" }, { "id": "01a0e204-f7b1-70a9-8af6-3ed7c9afcf35", "title": "How to map Java Enum to custom values with JPA and Hibernate", "url": "https://vladmihalcea.com/java-enum-custom-values/", "published_at": "2024-06-24T17:22:20+00:00" }, { "id": "01a0e204-f7b1-70a9-8af6-3ed7ca9b4ab2", "title": "How does the Hibernate JAVA_TIME_USE_DIRECT_JDBC setting work", "url": "https://vladmihalcea.com/hibernate-type-java_time_use_direct_jdbc/", "published_at": "2024-06-18T09:41:22+00:00" }, { "id": "01a0e204-f7b1-70a9-8af6-3ed7cb358a32", "title": "Hibernate WITH RECURSIVE query", "url": "https://vladmihalcea.com/hibernate-with-recursive-query/", "published_at": "2024-06-13T16:10:09+00:00" }, { "id": "01a0e204-f7b1-70a9-8af6-3ed7cb87d498", "title": "High-Performance Java Persistence Newsletter, Issue 63", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-63/", "published_at": "2024-06-04T13:29:36+00:00" }, { "id": "01a0e204-f7b1-70a9-8af6-3ed7cb99e3d6", "title": "Hibernate ON CONFLICT DO clause", "url": "https://vladmihalcea.com/hibernate-on-conflict-do-clause/", "published_at": "2024-05-29T10:50:26+00:00" }, { "id": "01a0e204-f7b1-70a9-8af6-3ed7cb9fac37", "title": "PostgreSQL COPY result set to file", "url": "https://vladmihalcea.com/postgresql-copy-result-set-file/", "published_at": "2024-05-22T07:31:55+00:00" }, { "id": "01a0e204-f7b1-70a9-8af6-3ed7cbdd76b5", "title": "PostgreSQL plan_cache_mode", "url": "https://vladmihalcea.com/postgresql-plan-cache-mode/", "published_at": "2024-05-15T15:44:35+00:00" }, { "id": "01a0e20e-9e8c-70e0-ab60-a0725df3b0c9", "title": "Overriding FetchType.EAGER with fetchgraph", "url": "https://vladmihalcea.com/fetchtype-eager-fetchgraph/", "published_at": "2024-05-08T16:00:31+00:00" }, { "id": "01a0e20e-9e8c-70e0-ab60-a0725ea2fc33", "title": "High-Performance Java Persistence Newsletter, Issue 62", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-62/", "published_at": "2024-05-02T12:12:53+00:00" }, { "id": "01a0e20e-9e8c-70e0-ab60-a0725ecb3a8d", "title": "The best way to use the JPA OneToOne optional attribute", "url": "https://vladmihalcea.com/best-way-onetoone-optional/", "published_at": "2024-04-24T09:30:36+00:00" }, { "id": "01a0e20e-9e8c-70e0-ab60-a0725f30b5a3", "title": "How to calculate percentiles with SQL PERCENTILE_CONT", "url": "https://vladmihalcea.com/sql-percentile-cont/", "published_at": "2024-04-18T15:10:03+00:00" }, { "id": "01a0e20e-9e8c-70e0-ab60-a0725f963fc0", "title": "PostgreSQL FOR UPDATE vs FOR NO KEY UPDATE", "url": "https://vladmihalcea.com/postgresql-for-no-key-update/", "published_at": "2024-04-10T17:40:06+00:00" }, { "id": "01a0e20e-9e8c-70e0-ab60-a0725fc3b544", "title": "High-Performance Java Persistence Newsletter, Issue 61", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-61/", "published_at": "2024-04-03T08:41:24+00:00" }, { "id": "01a0e20e-9e8c-70e0-ab60-a072608d2447", "title": "PostgreSQL Heap-Only-Tuple or HOT Update Optimization", "url": "https://vladmihalcea.com/postgresql-heap-only-tuple-hot-update-optimization/", "published_at": "2024-03-26T19:41:15+00:00" }, { "id": "01a0e20e-9e8c-70e0-ab60-a0726127123b", "title": "PostgreSQL Index Types", "url": "https://vladmihalcea.com/postgresql-index-types/", "published_at": "2024-03-11T09:00:33+00:00" }, { "id": "01a0e20e-9e8c-70e0-ab60-a072618a07a4", "title": "High-Performance Java Persistence Newsletter, Issue 60", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-60/", "published_at": "2024-03-04T11:58:05+00:00" }, { "id": "01a0e20e-9e8c-70e0-ab60-a0726237056a", "title": "How to map the OffsetDateTime ZoneOffset with Hibernate TimeZoneColumn", "url": "https://vladmihalcea.com/offsetdatetime-zoneoffset-hibernate-timezonecolumn/", "published_at": "2024-02-27T19:32:14+00:00" }, { "id": "01a0e223-a5d6-71bc-862b-3a499d717257", "title": "How to use Java Records with Spring Data JPA", "url": "https://vladmihalcea.com/records-spring-data-jpa/", "published_at": "2024-02-24T12:31:13+00:00" }, { "id": "01a0e223-a5d6-71bc-862b-3a499d87bc43", "title": "PostgreSQL Performance Tuning Settings", "url": "https://vladmihalcea.com/postgresql-performance-tuning-settings/", "published_at": "2024-02-14T09:00:04+00:00" }, { "id": "01a0e223-a5d6-71bc-862b-3a499d9e32af", "title": "Hibernate StatelessSession JDBC Batching", "url": "https://vladmihalcea.com/hibernate-statelesssession-jdbc-batching/", "published_at": "2024-02-07T14:12:51+00:00" }, { "id": "01a0e223-a5d6-71bc-862b-3a499dab1608", "title": "High-Performance Java Persistence Newsletter, Issue 59", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-59/", "published_at": "2024-02-01T10:31:41+00:00" }, { "id": "01a0e223-a5d6-71bc-862b-3a499e398849", "title": "Fetching recursive associations with JPA and Hibernate", "url": "https://vladmihalcea.com/recursive-associations-jpa-hibernate/", "published_at": "2024-01-24T18:56:26+00:00" }, { "id": "01a0e223-a5d6-71bc-862b-3a499eb890fe", "title": "How to use the Java CountDownLatch", "url": "https://vladmihalcea.com/java-countdownlatch/", "published_at": "2024-01-18T09:41:58+00:00" }, { "id": "01a0e223-a5d6-71bc-862b-3a499f494995", "title": "The best way to test the data access layer", "url": "https://vladmihalcea.com/test-data-access-layer/", "published_at": "2024-01-11T08:00:37+00:00" }, { "id": "01a0e223-a5d6-71bc-862b-3a499fd389b6", "title": "High-Performance Java Persistence Newsletter, Issue 58", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-58/", "published_at": "2024-01-03T16:21:09+00:00" }, { "id": "01a0e223-a5d6-71bc-862b-3a49a034e938", "title": "Hibernate StatelessSession Upsert", "url": "https://vladmihalcea.com/hibernate-statelesssession-upsert/", "published_at": "2023-12-19T18:02:27+00:00" }, { "id": "01a0e223-a5d6-71bc-862b-3a49a0b03d82", "title": "The best way to map multiple entities on the same table", "url": "https://vladmihalcea.com/multiple-entities-on-same-table/", "published_at": "2023-12-15T10:28:02+00:00" }, { "id": "01a0e239-5097-7094-90e9-adf2045db064", "title": "Spring Load-Time Weaving", "url": "https://vladmihalcea.com/spring-load-time-weaving/", "published_at": "2023-12-07T17:08:21+00:00" }, { "id": "01a0e239-5097-7094-90e9-adf2052e7493", "title": "High-Performance Java Persistence Newsletter, Issue 57", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-57/", "published_at": "2023-12-01T08:30:15+00:00" }, { "id": "01a0e239-5097-7094-90e9-adf205c84039", "title": "Index Selectivity", "url": "https://vladmihalcea.com/index-selectivity/", "published_at": "2023-11-22T18:31:48+00:00" }, { "id": "01a0e239-5097-7094-90e9-adf205e28d24", "title": "How to cascade DELETE with Spring and Hibernate events", "url": "https://vladmihalcea.com/cascade-delete-hibernate-events/", "published_at": "2023-11-15T08:00:34+00:00" }, { "id": "01a0e239-5097-7094-90e9-adf206816247", "title": "Table partitioning with Spring and Hibernate", "url": "https://vladmihalcea.com/table-partitioning-spring-hibernate/", "published_at": "2023-11-09T09:55:42+00:00" }, { "id": "01a0e239-5097-7094-90e9-adf207811a51", "title": "High-Performance Java Persistence Newsletter, Issue 56", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-56/", "published_at": "2023-11-01T08:07:28+00:00" }, { "id": "01a0e239-5097-7094-90e9-adf207ec7fed", "title": "How to cascade DELETE unidirectional associations with Spring Data JPA", "url": "https://vladmihalcea.com/cascade-delete-unidirectional-associations-spring/", "published_at": "2023-10-26T18:24:07+00:00" }, { "id": "01a0e239-5097-7094-90e9-adf2089e4da8", "title": "How to batch INSERT statements with MySQL and Hibernate", "url": "https://vladmihalcea.com/batch-insert-mysql-hibernate/", "published_at": "2023-10-18T16:11:02+00:00" }, { "id": "01a0e239-5097-7094-90e9-adf2093a9575", "title": "The best way to use Spring Data JPA Stream methods", "url": "https://vladmihalcea.com/spring-data-jpa-stream/", "published_at": "2023-10-11T08:30:54+00:00" }, { "id": "01a0e239-5097-7094-90e9-adf209f57ab7", "title": "High-Performance Java Persistence Newsletter, Issue 55", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-55/", "published_at": "2023-10-03T13:46:31+00:00" }, { "id": "01a0e246-981f-7327-a180-b7453aa8a5bc", "title": "Ten years of blogging", "url": "https://vladmihalcea.com/ten-years-of-blogging/", "published_at": "2023-09-29T06:00:08+00:00" }, { "id": "01a0e246-981f-7327-a180-b7453b3e76f4", "title": "How to find the source of an SQL query generated by Hibernate", "url": "https://vladmihalcea.com/source-sql-query-hibernate/", "published_at": "2023-09-20T11:22:38+00:00" }, { "id": "01a0e246-981f-7327-a180-b7453ba01868", "title": "How to fetch multiple JPA collections with Blaze Persistence MULTISET", "url": "https://vladmihalcea.com/blaze-persistence-multiset/", "published_at": "2023-09-13T16:05:06+00:00" }, { "id": "01a0e246-981f-7327-a180-b7453c7043d6", "title": "High-Performance Java Persistence Newsletter, Issue 54", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-54/", "published_at": "2023-09-05T09:00:48+00:00" }, { "id": "01a0e246-981f-7327-a180-b7453d1285d9", "title": "PostgreSQL JDBC Statement Caching", "url": "https://vladmihalcea.com/postgresql-jdbc-statement-caching/", "published_at": "2023-08-31T07:29:43+00:00" }, { "id": "01a0e246-981f-7327-a180-b7453d3aff1f", "title": "The best way to hide the JPA entity identifier", "url": "https://vladmihalcea.com/hide-jpa-entity-identifier/", "published_at": "2023-08-22T13:39:19+00:00" }, { "id": "01a0e246-981f-7327-a180-b7453dcdc67f", "title": "The best way to use JPA bidirectional sync methods", "url": "https://vladmihalcea.com/jpa-bidirectional-sync-methods/", "published_at": "2023-08-16T12:35:06+00:00" }, { "id": "01a0e246-981f-7327-a180-b7453e93c769", "title": "SQL Server useBulkCopyForBatchInsert configuration property", "url": "https://vladmihalcea.com/sql-server-usebulkcopyforbatchinsert/", "published_at": "2023-08-07T13:42:58+00:00" }, { "id": "01a0e246-981f-7327-a180-b7453f1f2f07", "title": "High-Performance Java Persistence Newsletter, Issue 53", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-53/", "published_at": "2023-08-02T11:14:22+00:00" }, { "id": "01a0e246-981f-7327-a180-b7453fed6c0b", "title": "JDBC Profiling with VisualVM", "url": "https://vladmihalcea.com/jdbc-profiling-visualvm/", "published_at": "2023-07-26T17:42:23+00:00" }, { "id": "01a0e25b-0f12-71e3-a6e7-0ca1a590bed9", "title": "Soft delete and JPA version property", "url": "https://vladmihalcea.com/soft-delete-jpa-version/", "published_at": "2023-07-21T06:30:37+00:00" }, { "id": "01a0e25b-0f12-71e3-a6e7-0ca1a5ed3ee5", "title": "How to customize the HibernateTypesContributor from Hypersistence Utils", "url": "https://vladmihalcea.com/customize-hibernatetypescontributor-hypersistence-utils/", "published_at": "2023-07-11T09:00:32+00:00" }, { "id": "01a0e25b-0f12-71e3-a6e7-0ca1a66751a7", "title": "High-Performance Java Persistence Newsletter, Issue 52", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-52/", "published_at": "2023-07-04T09:00:47+00:00" }, { "id": "01a0e25b-0f12-71e3-a6e7-0ca1a68e7e86", "title": "Spring Data Query By Example", "url": "https://vladmihalcea.com/spring-data-query-by-example/", "published_at": "2023-06-27T05:46:15+00:00" }, { "id": "01a0e25b-0f12-71e3-a6e7-0ca1a7282f46", "title": "How to fetch multiple to-many relationships with jOOQ MULTISET", "url": "https://vladmihalcea.com/fetch-multiple-to-many-jooq-multiset/", "published_at": "2023-06-21T09:10:29+00:00" }, { "id": "01a0e25b-0f12-71e3-a6e7-0ca1a7c9d1d0", "title": "The best way to use one-to-one table relationships", "url": "https://vladmihalcea.com/one-to-one-table-relationships/", "published_at": "2023-06-14T07:04:31+00:00" }, { "id": "01a0e25b-0f12-71e3-a6e7-0ca1a8c860bf", "title": "The best way to validate the DDL schema with Spring and Hibernate", "url": "https://vladmihalcea.com/validate-ddl-schema-spring-hibernate/", "published_at": "2023-06-07T09:35:55+00:00" }, { "id": "01a0e25b-0f12-71e3-a6e7-0ca1a9a14c19", "title": "High-Performance Java Persistence Newsletter, Issue 51", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-51/", "published_at": "2023-05-31T08:58:25+00:00" }, { "id": "01a0e25b-0f12-71e3-a6e7-0ca1aa856a1d", "title": "Cache synchronization using jOOQ and PostgreSQL functions", "url": "https://vladmihalcea.com/cache-synchronization-jooq-postgresql-functions/", "published_at": "2023-05-25T10:31:56+00:00" }, { "id": "01a0e25b-0f12-71e3-a6e7-0ca1aa9765d5", "title": "SQL Operation Order", "url": "https://vladmihalcea.com/sql-operation-order/", "published_at": "2023-05-17T11:10:15+00:00" }, { "id": "01a0e270-91c5-7030-a507-26cd8f66addf", "title": "Hibernate default entity sequence", "url": "https://vladmihalcea.com/hibernate-default-entity-sequence/", "published_at": "2023-05-09T09:32:31+00:00" }, { "id": "01a0e270-91c6-70d3-a6c4-bdd9d8428d9b", "title": "High-Performance Java Persistence Newsletter, Issue 50", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-50/", "published_at": "2023-05-03T10:28:08+00:00" }, { "id": "01a0e270-91c6-70d3-a6c4-bdd9d8f1dc63", "title": "Spring Transaction and Connection Management", "url": "https://vladmihalcea.com/spring-transaction-connection-management/", "published_at": "2023-04-29T14:44:32+00:00" }, { "id": "01a0e270-91c6-70d3-a6c4-bdd9d979583c", "title": "The best way to call SQL Server stored procedures with jOOQ", "url": "https://vladmihalcea.com/jooq-sql-server-stored-procedures/", "published_at": "2023-04-19T14:25:33+00:00" }, { "id": "01a0e270-91c6-70d3-a6c4-bdd9da4a166b", "title": "PostgreSQL Auto Explain", "url": "https://vladmihalcea.com/postgresql-auto-explain/", "published_at": "2023-04-13T15:35:38+00:00" }, { "id": "01a0e270-91c6-70d3-a6c4-bdd9da9077b8", "title": "High-Performance Java Persistence Newsletter, Issue 49", "url": "https://vladmihalcea.com/high-performance-java-persistence-newsletter-issue-49/", "published_at": "2023-04-04T09:45:02+00:00" }, { "id": "01a0e270-91c6-70d3-a6c4-bdd9db69151a", "title": "The best way to use the Spring Data JPA Specification", "url": "https://vladmihalcea.com/spring-data-jpa-specification/", "published_at": "2023-03-28T11:19:42+00:00" }, { "id": "01a0e270-91c6-70d3-a6c4-bdd9dbdc4bbe", "title": "The best way to use JOIN FETCH and Pagination with Spring", "url": "https://vladmihalcea.com/join-fetch-pagination-spring/", "published_at": "2023-03-22T13:22:54+00:00" }, { "id": "01a0e270-91c6-70d3-a6c4-bdd9dcb0db90", "title": "The best way to use Spring Data query methods", "url": "https://vladmihalcea.com/spring-data-query-methods/", "published_at": "2023-03-14T19:49:06+00:00" }, { "id": "01a0e270-91c6-70d3-a6c4-bdd9ddad7776", "title": "The best way to use SQL NOWAIT", "url": "https://vladmihalcea.com/sql-no-wait/", "published_at": "2023-03-10T16:07:20+00:00" } ] posts Claim your blog
Back to Vlad Mihalcea
Blog · corpus.blog/blogs/vladmihalcea.com/posts

Vlad Mihalcea

vladmihalcea.com

2026

2025

2024

2023