Hi! My name is Vlad Mihalcea, and I’m a Java Champion. I wrote the High-Performance Java Persistence book, which became one of the best-selling Java books on Amazon.I'm currently developing the amazing Hypersistence Optimizer, and in my free time, I develop various open-source projects (e.g. Hypersistence Utils and FlexyPool) and answer questions on StackOverflow. BlogI've been blogging since 2013 about Java, JPA, Hibernate, Spring, SQL, and database systems (e.g., Oracle, SQL Server, ...| Vlad Mihalcea
If you are using MySQL and want to benefit from automatic query optimization, then Releem can help you achieve this goal.| Vlad Mihalcea
In this article, I review the Foundations of AI and Machine Learning for Java Developers video course from Frank Greco.| Vlad Mihalcea
Learn how to map the Oracle TIMESTAMP WITH TIME ZONE column type on ZonedDateTime and OffsetDateTime with JPA and Hibernate.| Vlad Mihalcea
If you're interested in MySQL performance tuning and monitoring, then Releem is a very nice tool that can assist you in your endeavor.| Vlad Mihalcea
Learn why you should use compact table columns when designing your database schema to get better performance for your SQL queries.| Vlad Mihalcea
The High-Performance Java Persistence Newsletter features articles, videos, and answers to common StackOverflow questions.| Vlad Mihalcea
Introduction In this article, we are going to see why there is no benefit in using the Set collection type when mapping a bidirectional JPA OneToMany association. While the @OneToMany annotation can be used to map both unidirectional and bidirectional associations, as I explained this article, you should avoid the unidirectional mapping since it can lead to very inefficient SQL statements. Domain Model The goal of the bidirectional JPA OneToMany association is to map the one-to-many table rel...| Vlad Mihalcea
Introduction In this article, we are going to analyze how the JTA transaction type works. Since this is the default transaction type when using Jakarta EE or Java EE applications, it’s very important to understand how JTA transactions work, especially since Spring Boot or Spring applications use RESOURCE_LOCAL transactions instead. JTA Transaction Type When using the JTA transaction type, you can operate modifications across multiple data sources in an atomic global transaction that either ...| Vlad Mihalcea
Introduction In this article, we are going to see the best way to determine the optimal connection pool size using the FlexyPool auto-incrementing pool strategy. If you are unfamiliar with the reason why database applications need a connection pool, then check out this article first. Now, according to the Universal Scalability Law, the maximum throughput of a database system is achieved for a limited number of database connections. If we increase the number of connections above that particula...| Vlad Mihalcea
Introduction Welcome to a new issue of the High-Performance Java Persistence Newsletter in which we share articles, videos, workshops, and StackOverflow answers that are very relevant to any developer who interacts with a database system using Java. Articles The pick of this week is this article about data alignment in PostgreSQL tables and indexes. By properly designing your tables and indexes, you can end up saving 10 or 20% of disk and in-memory space. Another good read was this series of ...| Vlad Mihalcea
The High-Performance Java Persistence Newsletter features articles, videos, and answers to common StackOverflow questions.| Vlad Mihalcea
By scanning your application configuration, Hypersistence Optimizer can tell you what changes you need to make to speed up your application.| Vlad Mihalcea
Get help from a Java Champion that can help you speed up your database application and help you get the best out of it.| Vlad Mihalcea
High-Performance Java Persistence book helps you get the most out of your data access layer, be it JDBC, JPA, Hibernate or jOOQ based.| Vlad Mihalcea
Learn what UUID type works best for a database Primary Key column and why a time-sorted TSID is more effective than the standard UUID.| Vlad Mihalcea
Learn how the Hibernate StatelessSession Upsert method works on PostgreSQL, MySQL, Oracle, and SQL Server.| Vlad Mihalcea