GORM is a relational database to object mapper. To work properly it needs to know the primary key for each table. The primary key uniquely (and quickly) identifies a single record from a table. GORM (and Hibernate as the underlaying framework) supports many ways to identify a record in your favorite database. Some legacy databases may use trigger-generated primary … Lees verder Quick GORM tip: trigger based primary key generation
Every developer has (or will) encountered the phenomenon called pagination. In this blog post I want to challenge you as a developer or product owner to reconsider using that pattern. Simply put: it is a bad solution to a problem that you shouldn’t have. (Of course, since this is a blog post, there may be some nuances left out. Take … Lees verder Pagination: a bad solution to a problem you should not have
I was reading an article about property-based testing the other day. This article started with the problem that it could be difficult to test all the cases of a function and that this was cumbersome and error prone. This triggered me to think about why such a function would be difficult to test. The switch statement During the years I … Lees verder Cleaning up switch cases with clean code for easy testing
So, we have been using pipelines-as-code in Jenkins for a while now and we generally are using scripted pipelines, Groovy scripts that run in Jenkins. Very flexible, but it is missing something for me. While we were used to the webforms of Jenkins before pipelines, these constructs aren’t always available in scripted pipelines. Enter declarative pipelines. These are pipelines-as-code as … Lees verder How to start with declarative Jenkins pipelines
As a continuous delivery engineer I really want software teams to work fast and safe, with ease and having fun. Happy teams are productive, learning and innovative teams. Authoring pipelines is an important aspect of a safe and smooth development cycle. Every new piece of code should be tried, tested, reworked and eventually (potentially) promoted for real use. However, there … Lees verder How to reuse pipelines with Jenkins Shared Libraries
This is part 8, the last instalment of the series called “Functional Java by Example”. The example I’m evolving in each part of the series is some kind of “feed handler” which processes documents. In the last instalment we’ve seen some pattern matching, using the Vavr library, and treated failures as data too, e.g. take an alternative path and return … Lees verder Functional Java by Example | Part 8 – More Pure Functions
In this first installment of Testing with state using GraphWalker, we’ll look at integration testing the persistence layer of a Spring application. So, our tests will target the database and the data repositories. Statefulness The database itself is inherently stateful. As a result, if we connect a data repository to an actual database, it will also show stateful behavior. For … Lees verder Testing with state using GraphWalker | Part 1 – Persistence
Used versions: GORM 6.1.9 Hibernate 5.1.5 Grails 3.3.10 This week I had to map an object on an existing database table with an existing primary key not named ‘id’ but ‘aniId’. By convention GORM is expecting such an ‘id’ property and if it is absent GORM inserts it for us which is very handy with new tables. But with an … Lees verder GORM map table without primary key
This post will demonstrate generating test data using junit-quickcheck. It will focus on practical examples, rather than the theory behind property based testing.
This is part 7 of the series called “Functional Java by Example”. The example I’m evolving in each part of the series is some kind of “feed handler” which processes documents. We’ve already dealt with exceptional situations before, but we’re going to take care of them, more ehm,…functionally — as data.