Category: Spring Boot

  • Hibernate Error – Encountered problem trying to hydrate identifier for entity

    This is the stack trace for this error: You may get this error if the data type defined on the database table is different from the one defined in Hibernate/Java code. To fix this, make sure they are both of the same types. This can also happen when you are storing an invalid value in…

  • Working with Hibernate in a multi-threaded application

    Some of my learnings while working with Hibernate in a multi-threaded Spring Boot application. Multiple sessions When you start an @Async method, it runs in its own thread managed by Spring. This means that the session created by the calling method may not be shared with the async method. The async method might create its…

  • Fixing slow Bcrypt and BasicAuthenticationFilter.doFilter

    I recently investigated and fixed a performance issue with user authentication in our Spring Boot based API service. Our users started complaining about random 504s from our service. Looking at our thread pool config, worker threads, database connection pool size etc., everything looked normal. Looking at NewRelic for slow transactions, it gave a clue: It…

  • How to mock Clock in DTO classes?

    If you need to freeze time for a Spring Boot integration test, the easiest option is to define a custom bean for Clock object for test profile. Eg This only works if the Clock object is injected by Spring into a component (Controller/Service/Repository etc.,) What if you have a Clock object in your DTO class…

  • Hide Links object with SpringDoc & Swagger 3

    We started generating Swagger 3 documentation (OpenAPI 3.0) for our API service using SpringDoc. We are also using Spring Hateoas to include links within the response for easy navigation. The generated schema includes the 3 examples of “_links” object for each model classes that extends RepresentationModel in your response. Here is a shortened example of…