The Java Ecosystem’s Obsession with NonNull Annotations

I'm not well known for my love of annotations. While I do recognise that they can serve a very limited purpose in some areas (e.g. hinting stuff to the compiler or extending the language where we don't want new keywords), I certainly don't think they were ever meant to be used for API design. "unfortunately" … Continue reading The Java Ecosystem’s Obsession with NonNull Annotations

Use jOOQ to Read / Write Oracle PL/SQL RECORD Types

Some of the biggest limitations when working with Oracle PL/SQL from Java is the lack of support for a variety of PL/SQL features through the JDBC interface. This lack of support is actually not limited to JDBC, but also extends to Oracle SQL. For instance, if you're using the useful PL/SQL BOOLEAN type as such: … Continue reading Use jOOQ to Read / Write Oracle PL/SQL RECORD Types

Applying Queueing Theory to Dynamic Connection Pool Sizing with FlexyPool

I'm very happy to have another interesting blog post by Vlad Mihalcea on the jOOQ blog, this time about his Open Source library flexypool. Read his previous jOOQ Tuesdays post on Hibernate here. Vlad is a Hibernate developer advocate and he's the author of the popular book High Performance Java Persistence, and he knows 1-2 … Continue reading Applying Queueing Theory to Dynamic Connection Pool Sizing with FlexyPool

Why You Should (Sometimes) Avoid Expressions in SQL Predicates

I've recently discovered a rather significant performance issue on a productive Oracle 11g customer database. And I'm sure you have this issue too, which is why I'm documenting it here. This is a simplified representation of the setup at the customer site: ID PAYMENT_DATE TEXT ---------- ------------ ----------------------------------- 33803 21.05.16 DcTNBOrkQIgMtbietUWOsSFNMIqGLlDw... 29505 09.03.16 VIuPaOAQqzCMlFBYPQtvqUSbWYPDndJD... 10738 … Continue reading Why You Should (Sometimes) Avoid Expressions in SQL Predicates