[Hibernate] @OneToMany - Eine referenzierte Tabelle abfragen

turmaline

Bekanntes Mitglied
Hallo Leute,

in der Tabelle "T_FEEDBACK" habe ich ein Attribut feedbackComments:

Java:
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinTable(name = "T_FEEDBACK_COMMENTS",
    		   joinColumns = {@JoinColumn(name = "feedbackId", referencedColumnName="id")},
    		   inverseJoinColumns = {@JoinColumn(name = "commentId", referencedColumnName="id")})
    protected List<Comment> feedbackComments = new ArrayList<Comment>();

Wie kann ich dieses Feld per SQL-Query abfragen? So funktioniert schon mal nicht:
Java:
String select = "Select FEEDBACKCOMMENTS from " + TABLE_FEEDBACK + ";";
            
ResultSet result = executeSQL(select, conn);

ich hab versucht eine Lösung im Internet zu finden, nur anscheinend google ich mit falschen Begriffen, denn ich finde nichts (kann mir jedoch nicht vorstellen, dass ich die ienzige bin, die das Problem hat).
Kann mir jemand helfen?

Gruß,
Madlena
 
Zuletzt bearbeitet:
S

SlaterB

Gast
Select * from T_FEEDBACK_COMMENTS

ist diese Tabelle denn wirklich vorhanden? vorher mit DB-Tool nachschauen,
wird in Java wirklich eine SQL- und keine HQL-Query ausgeführt?
was soll das Feld 'FEEDBACKCOMMENTS' in dieser SQL-Tabelle sein? ich schätze es gibt nur feedbackId/ commentId

und man muss es immer wieder fragen: was ist denn die Fehlermeldung?
 

turmaline

Bekanntes Mitglied
ja die Tabelle existiert. Aber bekomme ich nicht nur die ids (denn die Tabelle FEEDBACK_COMMENTS) hat nur zwei spalten mit ids und ich brauche die Ergebnisse aus der Tabelle FEEDBACK_COMMENT - also alle Kommentare die zu einem bestimmten FEEDBACK gehören
 
S

SlaterB

Gast
langsam langsam langsam,
es geht zunächst mal um T_FEEDBACK_COMMENTS, ich lese jetzt dass die Tabelle da ist und
> Select * from T_FEEDBACK_COMMENTS
dann bestimmt funktioniert?

als nächstest sprichst du von einer Tabelle FEEDBACK_COMMENTS, was kann das denn sein, meinst du damit eine SQL-Tabelle?
existiert diese oder wünschst du dir das nur?
ich könnte mir vorstellen dass das die normal vorhandere SQL-Tabelle zu einer deiner Hibernate-Entities ist,
allerdings komisch benannt, wenn es FEEDBACK gibt und COMMENT, was steht dann in FEEDBACK_COMMENTS?
die Verknüpfung liegt doch schon in T_FEEDBACK_COMMENTS, also da musst du evtl. bisschen mehr erklären,
ist FEEDBACK_COMMENTS die Tabelle zu Comment?


wenn aber in der Verknüpfungstabelle nur Ids sind, du aber den Text von Kommentaren oder Feedbacks brauchst, dann musst du wohl Joinen,

was spricht eigentlich gegen eine HQL-Anfrage? könnte einfacher werden, auf jeden Fall sauberer wenn man schonmal Hibernate hat
 

turmaline

Bekanntes Mitglied
langsam langsam langsam,
es geht zunächst mal um T_FEEDBACK_COMMENTS, ich lese jetzt dass die Tabelle da ist und
> Select * from T_FEEDBACK_COMMENTS
dann bestimmt funktioniert?

ja das funktioniert, habe gerade ausprobiert.
Java:
String select = "Select * from " + TABLE_FEEDBACK_COMMENTS + " where feedbackId = " + feedbackId + ";";
            
            ResultSet result = executeSQL(select, conn);
            while(result.next()) {
                System.out.println(result.getLong("COMMENTID"));
            }

so komme ich auf die id's von den Comments - aber ich brauche nun die Comments selbst, hole ich mir sie jetzt über die ids? ???:L

als nächstest sprichst du von einer Tabelle FEEDBACK_COMMENTS, was kann das denn sein, meinst du damit eine SQL-Tabelle?
existiert diese oder wünschst du dir das nur?

sorry die farge verstehe ich nicht ganz.. wie könnte ich sie denn abfragen wenn sie nicht existieren würde?

ich könnte mir vorstellen dass das die normal vorhandere SQL-Tabelle zu einer deiner Hibernate-Entities ist,

ja so ist es.

allerdings komisch benannt, wenn es FEEDBACK gibt und COMMENT, was steht dann in FEEDBACK_COMMENTS?
die Verknüpfung liegt doch schon in T_FEEDBACK_COMMENTS, also da musst du evtl. bisschen mehr erklären,
ist FEEDBACK_COMMENTS die Tabelle zu Comment?

ok ich dachte aus dem Code in meiner ertsen Nachricht ist es klar was in der Tabelle FEEDBACK_COMMENTS drinsteht. Das ist eine JoinTable mit zwei Spalten: feedbackId und commentId (siehe den Code in der ersten Nachricht). SO... Ich habe noch eine Tabelle FEEDBACK_COMMENT und dort sind die Comments drin.


was spricht eigentlich gegen eine HQL-Anfrage? könnte einfacher werden, auf jeden Fall sauberer wenn man schonmal Hibernate hat

nichts spricht dagegen - nur dass ich ein ziemlicher anfänger bin und sehr wenig Ahnung auch von sql habe.
 
S

SlaterB

Gast
ganz oben steht dass T_FEEDBACK_COMMENTS die JoinTable ist, zumindest im Codeblock,
T_FEEDBACK_COMMENTS oder FEEDBACK_COMMENTS ist schon ein Unterschied


die Query könnte ungefähr so
Code:
Select c.text from  FEEDBACK_COMMENTS fc,  FEEDBACK_COMMENT c where c.id = fc.cid and fc.fid = gesuchtesFeedback
lauten, in HQL etwa
Code:
Select c.text from FeedBack f inner join f.feedbackComments as c where f.id = gesuchtesFeedback

die richtigen Spaltennamen/ Java-Attribute selber dazudenken
 

turmaline

Bekanntes Mitglied
danke Dir für Deine Antwort, die Query habe ich gerade so probiert auszuführen:

[Java]
String select = "Select c.id, c.text, c.created, c.author, c.createdInSgd, c.read from " + TABLE_FEEDBACK_COMMENTS +" fc " + TABLE_COMMENT + " c where c.id = fc.commentId and fc.feedbackId = " + feedbackId + ";";
[/Java]

worauf ich folgende Meldung bekommen habe:
org.h2.jdbc.JdbcSQLException: Feld "C.ID" nicht gefunden
Column "C.ID" not found; SQL statement:
Select c.id, c.text, c.created, c.author, c.createdInSgd, c.read from T_FEEDBACK_COMMENTS fc T_FEEDBACK_COMMENT c where c.id = fc.commentId and fc.feedbackId = 1; [42122-134]

Das Feld id in der Tabelle T_FEEDBACK_COMMENT existiert.
 
S

SlaterB

Gast
da fehlt ein Komma hinter der fc-Tabelle, siehe meine Vorlage,
besser immer mit SELECT * oder count(*) anfangen, dann sollte es für dieses vergessene Komma immer noch eine Fehlermeldung geben
 

turmaline

Bekanntes Mitglied
noch eine frage: eigentlich frage ich zuerst nach den Feedbacks und dann in einer anderen methode (da es nicht immer benötigt wird) nach den zu diesem feedback zugehörigen comments. somit muss ich die sql connection zwei mal aufmachen. hab kein gutes gefühl dabei..???:L
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Hibernate oneToMany Syntaxfehler Datenbankprogrammierung 3
OnDemand Hibernate OneToMany ManyToOne Datenbankprogrammierung 61
J MySQL Hibernate: Probleme beim Speichern von OneToMany - Datensätzen Datenbankprogrammierung 2
GilbertGrape hibernate: Problem mit OneToMany Datenbankprogrammierung 4
G Hibernate oneToMany Not null Datenbankprogrammierung 4
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
I Hibernate Predicate mit IN Clause "Unaware how to convert value to requested type" Datenbankprogrammierung 0
T org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: ..., could not initialize proxy - no Session Datenbankprogrammierung 5
T Realisierungsvorschläge Hibernate SQL Datenbankprogrammierung 1
Zrebna Wie mittels Hibernate eine Join-Tabelle als eigene Java-Klasse erstellen? Datenbankprogrammierung 5
Zrebna Tabellen-Erzeugung via Hibernate ignoriert 'CascadeType' settings Datenbankprogrammierung 1
I Hibernate / JPA - Spaltenname von Query (Select) bekommen Datenbankprogrammierung 6
M Mysql Views und Hibernate Caching Datenbankprogrammierung 4
damike84 Hibernate: persistieren eines Graphen Datenbankprogrammierung 2
N Hibernate Entitäten bei Selects aus 2 Tabellen Datenbankprogrammierung 7
OnDemand Hibernate Realationen Datenbankprogrammierung 7
OnDemand Hibernate ManyToOne Datenbankprogrammierung 5
D Hibernate Error: NoSuchMethodError Datenbankprogrammierung 4
D hibernate mit postgreSQL Datenbankprogrammierung 3
S MySQL Hibernate: Fehler bei Verwendung von 2 unterschiedlichen Enumration Datenbankprogrammierung 3
F Problem mit Hibernate c3p0 Datenbankprogrammierung 2
OnDemand MySQL Trigger löst nicht aus bei Hibernate Update Datenbankprogrammierung 12
J Hibernate One-To-One mit Where Klausel Datenbankprogrammierung 6
L hibernate.cfg.xml Could not parse configuration Datenbankprogrammierung 0
L H2 Hibernate definieren? Datenbankprogrammierung 1
T JPA Mapping Enum (hibernate 5) Datenbankprogrammierung 1
H In hibernate.cfg.xml schreiben und auslesen Datenbankprogrammierung 0
K Hibernate: Ein Fluch Datenbankprogrammierung 3
K Java Object mit Hibernate in MySQL abspeichern Datenbankprogrammierung 1
K Eclipse: JBoss Hibernate Tool: Kein Zugriff auf Datenbank Datenbankprogrammierung 5
S JpaRepositories & Hibernate: ungewolltes trim() in findBy Datenbankprogrammierung 7
S MySQL hibernate exception: illegal state exception : entityManagerFactory is closed Datenbankprogrammierung 5
S Hibernate: Verschiedene Klassen zurückgeben. Datenbankprogrammierung 2
looparda Architektur für JPA Hibernate Umstieg Datenbankprogrammierung 14
O HSQLDB Hibernate Criteria Problem Datenbankprogrammierung 3
perlenfischer1984 Hibernate mit final members Datenbankprogrammierung 3
perlenfischer1984 Java Objecte speichern mit Hibernate ? Datenbankprogrammierung 2
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
N Sqlite3 und Hibernate Datenbankprogrammierung 3
A Hibernate Cache leeren Datenbankprogrammierung 4
I MySQL Hibernate zu viele Queries Datenbankprogrammierung 2
Psypsy Hibernate / JPA erkennen von schon gespeicherten Objekten Datenbankprogrammierung 4
Psypsy Hibernate / JPA OneToOne MappedBy Frage Datenbankprogrammierung 2
J Hibernate + DTOs - DTOs in DAOs verwenden? Datenbankprogrammierung 1
S Hibernate-Konfiguration : Unverständliche Ausgabe beim Ausführen Datenbankprogrammierung 0
I MySQL Hibernate / MySQL alias in WHERE clause Datenbankprogrammierung 1
J Hibernate + HSQL embedded Datenbankprogrammierung 2
P Hibernate Einstieg Datenbankprogrammierung 5
C Hibernate und createQuery Datenbankprogrammierung 2
V kennt jemand empfehlenswerte online tutorials zur Hibernate ? gerne auch englisch. Datenbankprogrammierung 4
G H2 Hibernate - wie joins machen Datenbankprogrammierung 1
D Hibernate: Zustand eines Objekts erkennen? Datenbankprogrammierung 0
D Unterschiede Hibernate Vs. Java Persistence API Datenbankprogrammierung 8
I Hibernate / JPA Index hinzufügen Datenbankprogrammierung 1
X Hibernate Cache Verständnisproblem Datenbankprogrammierung 0
T Hibernate und inner class Datenbankprogrammierung 0
K n:m Tabellen mit Hibernate erstellen Datenbankprogrammierung 1
T Hibernate DAO gute Tutorials/Bücher gesucht Datenbankprogrammierung 0
C Hibernate: could not resolve property Datenbankprogrammierung 1
J Plug-In-Framework für Hibernate-Klassen Datenbankprogrammierung 0
M Hibernate - Save Child wenn nötig Datenbankprogrammierung 10
M DAO's + Hibernate Theorie Datenbankprogrammierung 4
T Hibernate, HSQLDB und UNIQUE Datenbankprogrammierung 2
F Hibernate - verschiedene Schemen Datenbankprogrammierung 7
D Hibernate SaveOrUpdate Exception Datenbankprogrammierung 2
D Hibernate CreateQuery ohne Result Datenbankprogrammierung 7
E MySQL Hibernate mit JaxWS führt zu LazyInitialization Exception Datenbankprogrammierung 8
L Einarbeitung in Hibernate -> wenn gute SQL Kenntnisse vorhanden? Datenbankprogrammierung 2
B DB2 Hibernate findet Datenbank nicht Datenbankprogrammierung 18
K JPA / Hibernate Annotations Datenbankprogrammierung 4
M JPA / Hibernate mit Postgres DB Datenbankprogrammierung 3
P JSF + H2 + TomEE + Hibernate/JPA Datenbank wird nicht angelegt Datenbankprogrammierung 3
E MySQL Hibernate ( Anfänger ) Datenbankprogrammierung 3
P Lazy-Fetchig und Session-Problem mit Hibernate Datenbankprogrammierung 4
J Hibernate Select auf Parameterliste Datenbankprogrammierung 3
C Hibernate ManyToMany zusammengesetzter Primärschlüssel, problem. Datenbankprogrammierung 3
P Oracle Hibernate - Oracle-VarChar-Index wird nicht genutzt Datenbankprogrammierung 3
M Hibernate Foreign Key definieren Datenbankprogrammierung 4
M Abstrakte Klassen Hibernate Datenbankprogrammierung 4
D Mit Hibernate (mit Annotation) auf Views zugreifen Datenbankprogrammierung 2
M [Hibernate]Abgleich eines lokalen Objekts mit dem Zustand aus der Datenbank. Datenbankprogrammierung 3
P Mit Hibernate mehrere Datensätze löschen Datenbankprogrammierung 7
P Probleme mit meinem 1. Hibernate Beispiel Datenbankprogrammierung 3
P erste Schritte mit Hibernate Datenbankprogrammierung 3
V Hibernate Interfaces von anderem Projekt Datenbankprogrammierung 2
J MySQL Datenbank konfigurieren, JDBC, MySQL oder Hibernate Datenbankprogrammierung 2
B Hibernate und portierbare Datenbank Datenbankprogrammierung 3
qwerqer [Hibernate] Mappingvarianten Datenbankprogrammierung 2
lumo Teneo Hibernate & JPA Datenbankprogrammierung 15
Z JPA mit Hibernate - Unable to build EntityManagerFactory Datenbankprogrammierung 7
Dit_ Hibernate, effiziente SQL-Abfrage definieren Datenbankprogrammierung 5
K Hibernate vs. JDBC Datenbankprogrammierung 4
J Hibernate Info 593 ? Datenbankprogrammierung 4
J Erstellen der SessionFactory in Hibernate 4.1 Datenbankprogrammierung 2
L PostgreSQL Hibernate-Frage Datenbankprogrammierung 2
X MySQL Hibernate: Massenupdate auf unbekannte Tabelle Datenbankprogrammierung 4
N hibernate: datasource Datenbankprogrammierung 7
H MySQL Hibernate: Updaten vereinfachen Datenbankprogrammierung 2
T Hibernate Division zweier Summen Datenbankprogrammierung 4
B MySQL Fehler: Cannot open connection mit Tomcat7, Hibernate und MySQL Datenbankprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben