Second Brain documentation

ADR 0003 – jOOQ sans JPA ni génération de code

← Toutes les décisions

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).