How to bootstrap JPA programmatically without the persistence.xml configuration file
Introduction One of my Twitter followers asked me if there is any documentation for bootstrapping JPA programmatically so that we can replace the persistence.xml configuration file with a Java configuration: Previously, I wrote an article about bootstrapping Hibernate without the persistence.xml, but that solution was based on the Hibernate-specific EntityManagerFactoryBuilderImpl. In this article, I’m going to give you a solution that works with any JPA provider since it’s based on standard Java Persistence API.
How to order entity subclasses by their class type using JPA and Hibernate
Introduction In this article, we are going to see how to order entity subclasses when executing a JPA query with Hibernate.
Two years as a Hibernate Developer Advocate
Introduction Exactly two years ago today, I started working as a Developer Advocate for the Hibernate team at Red Hat. I wrote a report a year ago to summarize my accomplishments for the Hibernate project, so it’s time to see what’s been done since last year.
How to map a JPA @ManyToOne relationship to a SQL query using the Hibernate @JoinFormula annotation
Introduction Someone asked me to answer the following StackOverflow question, and, because the question is very interesting from an SQL perspective, I decided to turn the answer it into a blog post. In this article, we are going to see how to map a JPA @ManyToOne association to the result of a SQL query using the Hibernate-specific @JoinFormula annotation.
How to emulate @CreatedBy and @LastModifiedBy from Spring Data using the @GeneratorType Hibernate annotation
Introduction Hibernate comes with many additions to the standard JPA specification. One such example is the @GeneratorType annotation which allows you to customize the way a given entity property value is automatically generated. If you’re using Spring Data, you can simply use the @CreatedBy and @LastModifiedBy annotations and the annotated entity properties are going to be populated with the currently logged user. If you’re not using Spring Data, then you can easily emulate the same behavior using the Hibernate-specific @GeneratorType annotation and the ValueGenerator callback mechanism.
How to inherit properties from a base class entity using @MappedSuperclass with JPA and Hibernate
Introduction In this article, we are going to see how @MappedSuperclass can help us reuse the @Id mapping of a JPA and Hibernate entity so that it won’t have to be declared on each and every entity.
The best way to map a @NaturalId business key with JPA and Hibernate
Introduction In this article, you are going to learn what the Hibernate natural id is and how you can use it to fetch entities based on a business key. As I explained in this free chapter of my book, Hibernate offers many benefits over standard JPA. One such example is the @NaturalId mapping. In this article, you are going to see what is the best way to map a natural business key when using Hibernate.
How does Hibernate handle JPA Criteria API literals
Introduction The JPA specification is like a Java interface, However, when it comes to performance, implementation details matter a lot. That’s why, even if you use the JPA standard, you still need to know how the underlying provider implements the standard specification. For instance, if we take this tweet from Gareth Western: We can clearly see that there is an issue in the way literals might be handled by Hibernate when executing a Criteria API query. Therefore, in this article, we are going to see how literals are handled by Hibernate and… Read More
9 High-Performance Tips when using MySQL with JPA and Hibernate
Introduction Although there is an SQL Standard, every relational database is ultimately unique, and you need to adjust your data access layer so that you get the most out of the relational database in use. In this article, we are going to see what you can do to boost up performance when using MySQL with JPA and Hibernate.

