ADR 0003 – jOOQ sans JPA ni génération de code
ADR 0003 – jOOQ sans JPA ni génération de code
Contexte
Le modèle compte peu de tables mais repose massivement sur JSONB, la recherche plein texte et des requêtes construites dynamiquement à partir des définitions (vues du jalon 2).
Décision
- Accès aux données uniquement par jOOQ (DSL), sans JPA/Hibernate.
- Pas de génération de code jOOQ : les tables et colonnes sont déclarées une fois dans
node/Db.java, colonnes non qualifiées pour un rendu propre des INSERT/UPDATE. - Conversion JSON avec le
JsonMapper(Jackson 3) fourni par Spring Boot.
Alternatives écartées
- JPA pour le CRUD + jOOQ pour les vues (proposition initiale) : deux modèles de persistance pour trois tables, et le mapping JSONB d’Hibernate avec Jackson 3 ajoute un risque sans bénéfice.
- Génération de code jOOQ : nécessite une base au build ; peu utile pour un schéma de cinq tables.
Conséquences
- Pas de cache de premier niveau ni de dirty checking : les écritures sont explicites, ce qui convient au journal
node_event. - À réévaluer si le schéma grossit fortement (la génération de code deviendrait rentable).