Probleme bei Überführung von SQL-Code in eine HQL-Abfrage

Zrebna

Bekanntes Mitglied
Hi!

Folgende SQL-Abfrage funktioniert bei mir:

SQL:
select count(*) from task t join config_task ct
on t.id = ct.task_id
where ct.config_id = 100;

Jedoch wirft folgende HQL-Abfrage einen Fehler ("unexpected token: ct")

Java:
public Integer getCountTasksById(Long configId) {
        String hql = "SELECT COUNT(*) FROM " + Task.class.getSimpleName() + " t"
                + " JOIN config_task ct ON"
                + " t.id = ct.task_id"
                + "WHERE ct.config_id = :id";
        
        return ((Number) this.getSession().createQuery(hql).setParameter("id", configId).getResultList()).intValue();

Zu bemerken ist, dass die DB-Tabelle config_task keine eigene Java-Klasse ist, sondern lediglich in der Klasse 'Config' mittels der Hibernate-Annotation "@JoinTable"
als Jointabelle (Beziehungstabelle) zwischen den Klassen (sowie Tabellen) Config und Task erstellt wurde.
In der Datenbank taucht die Beziehungstabelle auch korrekt auf und speichert auch die korrekten Werte.

Der Code in der Config-Klasse zur Erzeugung der Beziehungstabelle sieht so aus:

Java:
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "config_task", joinColumns = @JoinColumn(name = "config_id", referencedColumnName = "ID"), inverseJoinColumns = @JoinColumn(name = "task_id", referencedColumnName = "ID"))
    private Set<Task> tasks;

Die Klasse Config hat dann noch einen Getter und Setter für das Set<Task>.


Evtl. kann mir hier Jemand helfen, wie ich meine HQL-Abfrage zum Funktionieren bekomme.

Gruß
Zrebna
 

Zrebna

Bekanntes Mitglied
Hoppla, peinlich - aber Danke auch fpr den Tip:
Zum Tip: Was meinst du mit fertig gebaute Abfrage nochmal ausgeben, wenn man nach Fehlern sucht? Mit dem Debugger durchgehen?

Ansonsten bekomme ich nach dem Fix nun aber einen anderen Fehler:
Path expected for join

Weißt du, was es damit auf sich hat?

Update: Selber Fehler (Path expected for join) nach Umbau weiter gegeben.
Habe versucht die Methode anzupassen, um teils über Objekte zu gehen (sql-code funktioniert)

HQL-Code:

Java:
public Integer getCountTasksById(Long configId) {
        String hql = "SELECT COUNT(*) FROM " + Config.class.getSimpleName() + " c"
                + " JOIN config_task ct ON"
                + " c.id = ct.config_id"
                + " JOIN c.tasks t"
                + " WHERE ct.config_id = :id";
        
        return ((Number) this.getSession().createQuery(hql).setParameter("id", configId).getResultList()).intValue();
 
Zuletzt bearbeitet:

Robert Zenz

Top Contributor
Zum Tip: Was meinst du mit fertig gebaute Abfrage nochmal ausgeben, wenn man nach Fehlern sucht? Mit dem Debugger durchgehen?
Na lass dir die gebaute Abfrage einfach einmal ausgeben auf die Konsole, oder betrachte sie im Debugger, dann waere das schonmal aufgefallen, und fuehre diese dann zum Beispiel auch haendisch auf der Datenbank aus, deckt auch viele einfache Fehler auf.

Weißt du, was es damit auf sich hat?
Ich kenne HQL nicht, aber laut Suche irgenwas damit dass die zweite Tabelle qualifiziert werden muss anhand der Ersten:

Code:
JOIN c.config_task ct ON

So oder so aehnlich.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
TH260199 Java-Programm. Probleme bei der Umsetzung von einer Kontaktverwaltung. Datenbankprogrammierung 7
Kirby.exe Probleme mit docker-compose.yml Datenbankprogrammierung 4
B Probleme mit Datenbankverbindung Datenbankprogrammierung 2
N java SQL JAR - Probleme Datenbankprogrammierung 18
S probleme mit dem jdbc treiber Datenbankprogrammierung 1
T Oracle Probleme bei getTableName Datenbankprogrammierung 8
B Probleme mit java.sql.SQLException: ResultSet closed Datenbankprogrammierung 21
D Probleme bei Einsteiger Aufgabe SQL Datenbankprogrammierung 2
M JAVA Derby INSERT probleme Datenbankprogrammierung 12
Z MySQL Probleme mit resultSet executQuery Datenbankprogrammierung 3
H Probleme mit Unicodedarstellung in Derby DB Datenbankprogrammierung 1
M MySQL probleme beim "Generate Tables from Entities" Datenbankprogrammierung 9
L Probleme mit DriverManager.getConnection(..) - Endlosschleife, Java Absturz, Keine Exception Datenbankprogrammierung 4
S Derby/JavaDB Probleme beim anlegen einer embedded DB Datenbankprogrammierung 13
P Probleme mit meinem 1. Hibernate Beispiel Datenbankprogrammierung 3
W Probleme mit AND und OR Datenbankprogrammierung 5
D DB Tabelle in JTable anzeigen - Probleme Datenbankprogrammierung 8
Gossi CallableStatement Probleme Datenbankprogrammierung 8
D Probleme bei der Erzeugung einer Tabelle Datenbankprogrammierung 15
L MySQL Probleme mit PreparedStatement für SQL-Abfrage in Java Datenbankprogrammierung 2
R Derby/JavaDB Insert Statement Probleme Datenbankprogrammierung 14
L Derby/JavaDB Derby macht Probleme Datenbankprogrammierung 4
B HSQLDB Probleme mit Select...Where Abfrage Datenbankprogrammierung 16
M Probleme mit Triggering Datenbankprogrammierung 2
F DB2 Probleme mit dem DriverManager Datenbankprogrammierung 4
S Derby/JavaDB OpenJPA, @oneToMany und Probleme Datenbankprogrammierung 2
I MySQL Probleme mit kyrillischen Zeichen Datenbankprogrammierung 2
A Derby/JavaDB Probleme beim Einbinden Datenbankprogrammierung 2
S Probleme mit INSERT Befehl Datenbankprogrammierung 11
R isLast() Probleme bei Pervasive Datenbankprogrammierung 5
S Probleme mit localhost Datenbankprogrammierung 14
M Oracle Probleme mit dem anbinden einer Oracle 10g Datenbank Datenbankprogrammierung 27
J MySQL Hibernate: Probleme beim Speichern von OneToMany - Datensätzen Datenbankprogrammierung 2
P Hibernate -> Probleme bei n:m-Relation und JUnit Datenbankprogrammierung 10
J Probleme mit Datenbankzeiger Datenbankprogrammierung 19
A Probleme mit auf DB2 Express zugreiffen Datenbankprogrammierung 6
N Probleme beim Aufruf aus der DB Datenbankprogrammierung 7
M Probleme bei Select in Schleife Datenbankprogrammierung 7
G Probleme mit Datenbankanbindung Datenbankprogrammierung 3
R Probleme mit Insert Datenbankprogrammierung 2
P Probleme mit Oracle Timestamp Datenbankprogrammierung 3
klattiator Hibernate - Probleme bei Konfiguration Datenbankprogrammierung 3
F Probleme mit entfernter DB und Hibernate Zeichensatz Datenbankprogrammierung 3
G Probleme mit der Schnittstelle H1bernate/Eclipse Datenbankprogrammierung 6
A Probleme mit Jar-File in ein Jar-File Datenbankprogrammierung 8
O Derby Performance Probleme? Datenbankprogrammierung 4
V Probleme beim Öffnen "einiger" SuperbaseTabellen p Datenbankprogrammierung 8
G Probleme beim Methodenaufruf einer EJB Datenbankprogrammierung 10
ARadauer hibernate probleme Datenbankprogrammierung 13
Y Probleme mit H2 und Primary Key Datenbankprogrammierung 4
D Probleme mit mysql-Connection Datenbankprogrammierung 10
G INNODB backup probleme Datenbankprogrammierung 2
S Probleme mit statement.close() Datenbankprogrammierung 10
A Probleme beim Schreiben in eine CSV-Datei aus einer H2-DB Datenbankprogrammierung 2
G Probleme mit Laden des JDBC-Treiber in HSQLDB Datenbankprogrammierung 2
T Probleme mit Date in H2 Datenbank Datenbankprogrammierung 2
4 Probleme mit Select abfrage Datenbankprogrammierung 4
N Probleme mit Access-DB bei einem Webserver Datenbankprogrammierung 5
T Diverse JDBC Probleme (inner join, rs.last(), update) Datenbankprogrammierung 2
R Probleme mit Datensätzen in MySql DB Datenbankprogrammierung 3
B Oracle Driver Probleme Datenbankprogrammierung 2
I Probleme bei MySQL - Replikation Datenbankprogrammierung 2
R Probleme mit ausführbarem Jar Archiv Datenbankprogrammierung 9
F Probleme mit Jar Datei Datenbankprogrammierung 3
S String probleme Datenbankprogrammierung 3
R Probleme mit der Verbindung zum localhost Datenbankprogrammierung 12
S Probleme bei der Installation von MySQL 5.0 Datenbankprogrammierung 4
A Probleme mit ResultSet und getString(i) Datenbankprogrammierung 13
G Probleme mit Access und Join Datenbankprogrammierung 3
N Probleme mit "nur vorwärts gerichtete ResultSet" Datenbankprogrammierung 7
M Daten von MySQL nach MSSql probleme beim schreiben Datenbankprogrammierung 3
S JDBC-Anfänger und Probleme beim Treiberfinden etc. Datenbankprogrammierung 4
T Probleme beim Verbindungsaufbau zum SQL 2000 Datenbankprogrammierung 2
G Probleme mit Datenbankeinträge Datenbankprogrammierung 4
G Probleme mit Treiber (connector) Datenbankprogrammierung 20
thE_29 getBytes() - russland/bulgarien -- andere Codecs Probleme Datenbankprogrammierung 8
E Probleme mit JDBC und Executable-Jar Datenbankprogrammierung 2
G Probleme mit MySQL - Anmeldung Datenbankprogrammierung 2
P Probleme mit NullPointerException Datenbankprogrammierung 5
K MySQL: Probleme mit dem Verbinden per IP-Adresse Datenbankprogrammierung 6
T Probleme mit Datenbank Datenbankprogrammierung 6
M SQL , CSV Verbindung : Zu Umfangreicher Code durch Unwissenheit Datenbankprogrammierung 21
B Wie kopieren ich eine Spalte von einer Tabelle in eine andere Tabelle SQLite durch java code? Datenbankprogrammierung 26
Dimax MySQL LOAD DATA INFILE -id aus dem Code und Rest aus dem File. Datenbankprogrammierung 5
thet1983 MySQL Error Code 1111: Invalid use of group function Datenbankprogrammierung 2
DaCrazyJavaExpert Derby/JavaDB Unfindbarer Fehler im Datenbank-Code Datenbankprogrammierung 87
B MySQL LogIn Daten im Code verstecken Datenbankprogrammierung 3
F SQL Datenbank an Java Code anbinden Datenbankprogrammierung 5
P MySQL INSERT / UPDATE MySQL - perStoredProcedure oder direkt im Code Datenbankprogrammierung 3
G SQLLite error code 0x13: constraint failed Datenbankprogrammierung 7
ruutaiokwu code-formatter für t-sql... Datenbankprogrammierung 12
B H2 Database Beispiel Source Code Datenbankprogrammierung 8
M sql-code für suche in tabelle nach höchster transaktionsnr Datenbankprogrammierung 12
B SQL-Code Beautifier Datenbankprogrammierung 2
J mal wieder passwort im code. Datenbankprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben