Bounded Functional Loops in Kotlin
Loops are a basic paradigm in imperative programming languages. In functional languages you also need to loop, but you do it differently. Here, I present how I prefer to implement loops in a...
View ArticleJava Optional and Kotlin Nullable
We are using Kotlin and Spring Boot in one of our projects. This includes Spring Boot Jpa Repositories. We are using a CrudRepository that provides basic functionalities like save(), delete(),...
View ArticleConditional evaluation in Docker files
In general, a Docker build file (Dockerfile) should be usable on any Docker server. In some cases however, you would like to have something like a conditional ‘IF’ statement in your Dockerfile. To give...
View ArticleUnbounded Functional Loops in Kotlin
This article is a follow-up to this previous article about bounded loops. Bounded loops are cool because they always terminate and usually it is pretty easy to estimate the computational time. But as...
View ArticlePart 1: GraphQL with Spring Boot, JPA and Kotlin
GraphQL is a query language for dynamic queries on linked data. In the GraphQL world, there are many tutorials and documentation that illustrate the concrete introduction to GraphQL. Since getting...
View ArticleAngular & OpendId: a real world example
In theory it appears pretty easy to build the browser side of an application using OpenId Connect. Actually implementing it in a real world application has usually proven to be more difficult than...
View ArticleManagers adopt Kotlin! Addressing your fears and Kotlin’s gains.
Every time I have used Kotlin instead of Java I enjoyed it and did not regret it. But somehow I still meet some reservations regarding Kotlin with both managers and sometimes developers. This post will...
View ArticleDevelopers Adopt Kotlin! Addressing your fears and Kotlin’s gains.
Every time I have used Kotlin instead of Java I enjoyed it and did not regret it. But somehow I still meet some reservations regarding Kotlin with both managers and sometimes developers. This Post will...
View ArticleJPA Pitfalls – a Series of Serious JPA Obstacles
Most of our Java-based web-applications store their data in a relational database such as Oracle, PostgreSQL, MySQL, MariaDB or MS SQLServer. The standard way to access and modify the data is using an...
View ArticleJPA Pitfalls (1): Serialized Collection
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe, how easily a relation mapped as collection ends up as a...
View ArticleJPA Pitfalls (2): List or Set Relationship
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe the difference between a set or list relationship. JPA...
View ArticleJPA Pitfalls (3): Cascade Persist
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe issues of EM.persist with respect to relationships. When...
View ArticleJPA Pitfalls (4): Relationship Owner
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe issues with bidirectional relationships. In a...
View ArticleJPA Pitfalls (5): Object-Relational Mapping and Inheritance
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe possible performance impacts of JPA inheritance mapping...
View ArticlePart 2: GraphQL with Spring Boot, JPA and Kotlin
In Part 1 we set up a simple GraphQL backend application using Spring Boot, JPA and Kotlin. In the second part we will discuss best practices for such applications – especially how to test them. You...
View ArticlePostgres Performance Troubleshooting – An Example
Recently we encountered some severe performance problems in one of our projects. Some SQL queries were very slow. A certain query took over 6 seconds to finish in Azure’s Postgres service and about...
View ArticleJPA Pitfalls (6): Query Result with Duplicates
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe unexpected duplicates in the result of a JPQL query. A...
View ArticleJPA Pitfalls (7): Null Parameter
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe issues with using null parameter values. Setting the value...
View ArticleCo- and Contravariance in Kotlin From an Introductionary Domain Level...
Covariance and contravariance are properties of type systems of programming languages. They can be pretty intimidating words for a software developer who just wants to implement user requirements. In...
View ArticleJPA Pitfalls (8): Navigation of Relationships
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe unexpected results of navigational JPQL queries....
View Article