Lukas Eder

Java Champion, creator of jooq.org, the best way to write SQL in Java.

Will mostly tweet about Java, SQL, jOOQ, programming humour, and write at blog.jooq.org

Won't check Mastodon regularly, so best get in touch elsewhere!

Lukas Ederlukaseder
2025-04-14

@rotnroll666 @duckdb @hannes Connection::prepareStatement, now that's a call I haven't seen in a while!

Lukas Ederlukaseder
2025-01-07

@rotnroll666 I have enough "told you so" at home already. No need for "told you so" at work 🤌

Lukas Ederlukaseder
2025-01-07

@rotnroll666 They don't work, because if you follow them, you'll write your own sucky SQL builder for the dynamic SQL, and it will suck so bad that the next developer will rip it out and replace it with jOOQ, 3 years later.

Lukas Ederlukaseder
2025-01-07

In case it's not clear where it works best: Whenever you need client side type safety, improved mapping, dialect agnosticity, dynamic SQL (and chances are, you'll write a lot of this, once you embrace jOOQ).

But again, jOOQ doesn't care if you're querying tables or complex views! Use those, too!

Lukas Ederlukaseder
2025-01-07

I keep seeing "hot" takes that instead of using jOOQ's DSL, people should just use native SQL.

That's just a silly false dichotomy. jOOQ *encourages* you to create views, stored procedures, plain SQL templates, etc.

Use the DSL where it works best for you *in addition* to native SQL!

Lukas Ederlukaseder
2025-01-06

It is not forbidden to put a UNIQUE constraint on a FOREIGN KEY if you're modelling a 0-1 relationship, i.e. if there's at most 1 child per parent.

Lukas Ederlukaseder
2024-12-19

@javahippie Yeah, huh, would you look at that

Lukas Eder boosted:
2024-12-13

New episode: "jOOQ"

Michael and Nikolay are joined by @lukaseder, the creator of jOOQ, to discuss what it is, some nice developer experience features it has, and some fun things he's come across from a Postgres perspective.

🎧 postgres.fm/episodes/jooq

📺 youtu.be/73TmQjdvptg

Pictures of Lukas, Michael, and Nikolay mid-recording, the episode title "jOOQ", against a pink backround with an elephant wearing sunglasses.
Lukas Ederlukaseder
2024-11-26

The real reason why it's called "reactive" programming

Lukas Ederlukaseder
2024-11-26

When you discover a bug while investing a bug:
youtube.com/watch?v=AbSehcT19u0

Lukas Ederlukaseder
2024-11-22

Every time I see "bait and switch" claims related to OSS, I'm just baffled by the cynicism and glass-2%-empty pessimism, as if every supplier is just out to rip them off big time.

Why not focus on the tremendous value offered for free (even if only for a limited time), instead?

Supply chain management is important, obviously. It includes total cost of ownership considerations:
en.wikipedia.org/wiki/Total_co

But the term "bait and switch" hints at utter cynicism. Nothing grand arises out of cynicism.

Lukas Eder boosted:
Michael Simonsrotnroll666
2024-11-07

The @neo4j JDBC Driver v6 is finally out: github.com/neo4j/neo4j-jdbc/re supporting all statements (simple, prepared and callable) and a built-in SQL to Cypher translation layer using @JavaOOQ
Cheers to my colleagues and friends @mesirii @lukaseder and everyone behind the scenes.

Lukas Ederlukaseder
2024-11-07

@laxla@tech.lgbt What's complicated about setting up jOOQ? Have you seen these Maven/Gradle project templates? github.com/jOOQ/jOOQ-mcve

Lukas Ederlukaseder
2024-10-28

Me when the family asks what I do for a living:
buff.ly/4f0iV8j

Lukas Ederlukaseder
2024-10-21

JEP draft: Treat Loop Variables as Effectively Final in the Bodies of All for() Loops
buff.ly/3Uhd2ev

Lukas Ederlukaseder
2024-10-02

How to create jOOQ repositories in a Vaadin application:
buff.ly/4eMYTO8

Lukas Ederlukaseder
2024-09-10
Lukas Ederlukaseder
2024-08-22

What I thought making jOOQ would be like (pic)
What it is actually like (working around RDBMS bugs):
buff.ly/3AuX3Cx

Lukas Ederlukaseder
2024-08-21

CQRS in the Small with Java Records and jOOQ buff.ly/4cg35nL

Lukas Ederlukaseder
2024-08-21

Nobody will remember:
- Your salary
- How “busy you were”
- How many hours you worked

People will remember:
- How you used exceptions for control flow
- How you jumped out of 3 layered loops with break label
- How you encoded 4 valued logic with Optional<Boolean>

Client Info

Server: https://mastodon.social
Version: 2025.04
Repository: https://github.com/cyevgeniy/lmst