Vlad Mihalcea

SQL LATERAL JOIN – A Beginner’s Guide

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Hypersistence Optimizer is that tool!

Introduction

In this article, we are going to see how the SQL LATERAL JOIN works, and how we can use it to cross-reference rows from a subquery with rows in the outer table and build compound result sets.

A LATERAL join can be used either explicitly, as we will see in this article, or implicitly as it’s the case for the MySQL JSON_TABLE function.

Read More

High-Performance Java Persistence Newsletter, Issue 21

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Hypersistence Optimizer is that tool!

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.

Read More

Percona PMM – A beginner’s guide

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Hypersistence Optimizer is that tool!

Introduction

This article is a beginner’s guide for the Percona Monitoring and Management (PMM), a tool that’s very handy when it comes to analyzing a given database system.

PMM was released in 2016, and initially, it was available for MySQL. However, since 2018, it supports monitoring PostgreSQL as well, so once you learn it you can use it with the two most popular open-source relational database systems.

Read More

The best way to get more Twitter followers

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Hypersistence Optimizer is that tool!

Introduction

In this article, I’m going to share some tips that will help you get more Twitter followers by delivering high-quality content and increasing your audience engagement.

Read More

Mapping Java Records to JSON columns using Hibernate

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Hypersistence Optimizer is that tool!

Introduction

In this article, I’m going to explain how we can map Java Records to JSON columns when using Hibernate.

Because Hibernate ORM does not offer built-in support for JSON, we are going to use the Hiberate Types library, which allows you to map entity attributes to JSON column types, no matter if you are using Oracle, SQL Server, PostgreSQL, or MySQL.

Read More

SQL Server audit logging using triggers

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Hypersistence Optimizer is that tool!

Introduction

In this article, we are going to see how we can implement an audit logging mechanism using SQL Server database triggers to store both the previous and the current state of a given target table record in JSON column types.

Read More

High-Performance Java Persistence Newsletter, Issue 20

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Hypersistence Optimizer is that tool!

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.

Read More

The JPA and Hibernate first-level cache

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Hypersistence Optimizer is that tool!

Introduction

In this article, I’m going to explain how the JPA and Hibernate first-level mechanism works and how it can improve the performance of your data access layer.

In JPA terminology, the first-level cache is called Persistence Context, and it’s represented by the EntityManager interface. In Hibernate, the first-level cache is represented by the Session interface, which extends the JPA EntityManager one.

Read More

MySQL JSON_TABLE – Map a JSON object to a relational database table

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Hypersistence Optimizer is that tool!

Introduction

In this article, I’m going to explain how the MySQL JSON_TABLE function works, and how you can use it to transform a JSON object into a relational database table.

When using a relational database system, it’s best to design the database schema according to the relational model. However, there are certain use cases when the relational model is too strict, and we are better off storing data in a JSON column type.

For instance, as I explained in this article, when designing an audit log table, it’s much more convenient to store the before and after row snapshots in JSON columns, as this strategy will accommodate future target table modifications while also avoiding to duplicate every target table column in the audit log table. Thanks to the JSON column approach, we can even use a single audit log table for all target tables that we are auditing.

Read More

60 years of COBOL – past, present, and future

Imagine having a tool that can automatically detect JPA and Hibernate performance issues. Hypersistence Optimizer is that tool!

Introduction

60 years of COBOL, and, most likely, it’s here for the future. In this article, we have the pleasure of interviewing Adrian Tot about the past, present, and future of this technology that still has a very significant impact on our day-to-day business operations.

As software developers, we dream of using the latest technologies to solve various business use cases. However, lots of software systems still run on COBOL, a 60-year old English-like data processing language inspired by Grace Hopper’s idea of having a programming language that’s machine-independent.

Every now and then, I kept on stumbling on articles about COBOL that made me more curious about it. For instance, it was in 2014 that I read that there are 200 times more COBOL transactions executed on a per-daily basis than Google searches.

Or, I remember reading an article in 2017 about U.S. Digital Service attempts to modernize some legacy systems, which required interconnecting a Java-based application with a COBOL mainframe application. In the article, Marianne Bellotti explained that it was Java that was the bottleneck since the COBOL application response time was just 1 millisecond.

Or, recently, at the beginning of the COVID-19 epidemic, the U.S. Department of Labor was switching to the paper applications because the 40-year old COBOL system responsible for unemployment claims was overwhelmed with the afflux of requests.

This is a very interesting topic, and since I’ve never worked with COBOL, I decided to interview one of my friends, Adrian Tot, who has been using COBOL for over 15 years.

Read More