How to map an immutable entity with JPA and Hibernate

Introduction

In this article, you are going to find out how to map an immutable entity when using JPA and Hibernate.

If your Domain Model requires that a given entity should not be modified by the data access logic, Hibernate can enforce this requirement if the entity is marked with the @Immutable annotation.

Continue reading “How to map an immutable entity with JPA and Hibernate”

How to customize the JSON Serializer used by Hibernate-Types

Introduction

As already explained, the hibernate-types open-source project allows you to map JSON, ARRAY, PostgreSQL ENUM types and provides a simple way of adding immutable Hibernate Types.

After adding support for customizing the Jackson ObjectMapper, the next most-wanted issue was to provide a way to customize the JSON serializing mechanism.

In this article, you are going to see how you can customize the JSON serializer using hibernate-types.

Continue reading “How to customize the JSON Serializer used by Hibernate-Types”

How to use a JVM or database auto-generated UUID identifier with JPA and Hibernate

Introduction

Inspired by this comment on my blog, in this article, we are going to see how to use a UUID entity identifier that is auto-generated by Hibernate either in the JVM or using database-specific UUID functions.

Our Post entity looks as follows:

The Post entity has a UUID identifier and a title. Now, let’s see how we can map the Post entity so that the UUID identifier be auto-generated for us.

Continue reading “How to use a JVM or database auto-generated UUID identifier with JPA and Hibernate”

How to use database-specific or Hibernate-specific features without sacrificing portability

Introduction

Like other non-functional requirements, portability is a feature. While portability is very important when working on an open-source framework that will be used in a large number of setups, for end systems, portability might not be needed at all.

This article aims to explain that you don’t have to avoid database or framework-specific features if you want to achieve portability.

Continue reading “How to use database-specific or Hibernate-specific features without sacrificing portability”