Tweet of the Day
Our customers, users, and followers are sharing their love for jOOQ with the world. Here are:
Chris Martin who has switched jobs and is now really missing jOOQ. Too bad we can’t offer jOOQ for Python, Chris!
Moutaz Salem who had been waiting for jOOQ for all these years. But we’re here now, Moutaz. The pain has ended!
Simon Martinelli who is contemplating migration to jOOQ from Hibernate. Go for it Simon!
Thanks for the shouts, guys! You make the jOOQ experience rock!
We’re almost there! In early June, we’ll ship the awesome jOOQ 3.4 – a very ambitious project in which we’re finally going to tackle a couple of very important missing features. The ones that have made it through our roadmap optimisations are:
- Support for type safe DDL statements.
- Support for common table expressions.
- A unified SQL transformation API.
SQL transformation can be very effective for dialect standardisation, multi-tenancy, soft-deleting, row-level security and many more features. Have you used it yet? You should!
Better SQL transformation APIs will make your VisitListeners even more powerful, and custom QueryParts even easier to implement. If you’re a hard-core SQL transformation aficionado, this is great news for you as you can exert even more control over jOOQ’s SQL rendering.
In an earlier newsletter, we had promised to implement Informix support, but we had to optimise our roadmap to ensure the above gets shipped with the usual quality that we’re offering to our customers. We’re very sorry if that has affected you. We’ll try to have this in jOOQ 3.5, though.
Of course, there are lots of other minor improvements, so stay tuned for the release, very soon
In previous newsletters, we’ve advertised jOOQ community blog post contributions, which are a really awesome way to show your love – thank you very much, again!
In the previous weeks, however, we’ve discovered these two video contributions:
A jOOQ video tutorial by Ruben Alexander More Valencia (Spanish)
A jOOQ and Flyway presentation by Dmitry Lebedev and Rustam Arslanov (Latvian)
This is really great, thank you so much, guys! If you want to present jOOQ to your local JUG, do so today! If you need any brand material, example slides, example projects, or other material, please do contact us. We’re more than happy to provide you with what you need.
Every now and then, you may want to sort your records in a bit of a “quirky” way, i.e. by explicitly putting 1-2 values at the top and all the other values below. We refer to this as “sort indirection”, which can be achieved with a clever ORDER BY clause along with a CASE expression:
ORDER BY CASE WHEN name = 'val1' THEN 1 WHEN name = 'val2' THEN 2 WHEN name = 'val3' THEN 3 WHEN name = 'val4' THEN 4 END
Of course, jOOQ natively implements a couple of convenience methods to achieve the same.
Read the full article here:
We’ve said it before. We’ll say it again.
You should NEVER rely on case-sensitivity (or case-insensitivity) when writing vendor-agnostic SQL. It is hard enough to remember the rules in one single database, but if you ship your software to support various RDBMS, always force your identifiers to be case-sensitive (and settle for either all-uppercase or all-lowercase).
Fortunately, jOOQ takes care of case-sensitivity by default, quoting all your identifier as they were reported from the database.
You want to know why this is important? Consider reading this article where the various caveats and differences between identifier parts are explained and compared between databases:
GeeCON in Kraków is already over. Great conference and many great speakers!
Have you missed any of our previous jOOQ talks? Soon you’ll get another chance to hear us talk about jOOQ or SQL in general in any of these upcoming events:
- May 21, 2014: JUGS in Berne (German, about SQL)
- June 9 – 11, 2014: 33rd Degree in Kraków (English, about jOOQ)
- June 12 – 13, 2014: Geekout in Tallinn (English, about jOOQ)
Stay informed about 2014 events on www.jooq.org/news.