Wie ordne ich das Ergebnis einer JDBI-SQL-Abfrage mithilfe von Anmerkungen Map> zu?Java

Java-Forum
Anonymous
 Wie ordne ich das Ergebnis einer JDBI-SQL-Abfrage mithilfe von Anmerkungen Map> zu?

Post by Anonymous »

Ich verwende JDBI v3 und muss eine Abfrage ausführen, die Ereignisse mit den zugehörigen Interessen zurückgibt. Ich möchte das Ergebnis direkt Map zuordnen, wobei der Schlüssel die Ereignis-ID und der Wert die Liste der Interessen für dieses Ereignis ist.

Code: Select all

@SqlQuery("""
SELECT
e.id AS event_id,
i.id AS interest_id,
i.name AS interest_name,
i.category_id AS category_id
FROM event e
LEFT JOIN event_interest ei ON e.id = ei.event_id
LEFT JOIN interest i ON i.id = ei.interest_id
WHERE e.id IN ()
""")
Map findInterestsByEventIds(@BindList Set eventIds);
Interessenmodell:

Code: Select all

public class Interest {
private final Long id;
private final String name;
private final Long categoryId;
}
Problem: Ich kenne die @UseRowReducer-Annotation, aber sie scheint für die Arbeit mit Collection-Typen und nicht für Map konzipiert zu sein. Die JDBI-Dokumentation zeigt nicht klar, wie Ergebnisse zu Map zugeordnet werden.
Was ich versucht/überlegt habe:
  • Verwenden von @UseRowReducer – aber es scheint für Collection-Ergebnisse zu gelten
  • Verwenden von Multimap – aber ich bin mir nicht sicher, wie ich das mit JDBI-Annotationen umsetzen soll
  • Manuelle Zuordnung in der Serviceschicht – aber ich würde das lieber auf der Datenbankebene handhaben
Spezifische Frage: Wie kann ich JDBI so konfigurieren, dass Map mithilfe von Annotationen in der Dao-Schnittstelle direkt zurückgegeben wird? Ich würde eine Lösung bevorzugen, die:
  • mit annotationsbasierter Konfiguration funktioniert (keine fließende API)
  • kein Casting oder zusätzliche Verarbeitung in der Serviceschicht erfordert
  • die Eins-zu-viele-Beziehung ordnungsgemäß verarbeitet
Wenn a Es ist ein Multimap-Ansatz erforderlich. Bitte zeigen Sie, wie Sie ihn mit JDBI-Annotationen implementieren.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post