select "neu" statement Problem (jpql)

Status
Nicht offen für weitere Antworten.

bam

Mitglied
Guten Tag zusammen,

folgendes plagt mich.
Dieser Querie:

Code:
SELECT NEW A(x.nummer) FROM A x WHERE x

funktioniert so wie erwartet. Versuche ich allerdings mehrere Spalten auszulesen wie bspweise:

Code:
SELECT NEW A(x.nummer, x.name, x.vorname) FROM A x WHERE x

kriege ich folgenden Fehler:

Code:
Caused by: org.hibernate.hql.ast.QuerySyntaxException: Unable to locate appropriate constructor on class [de.xxx.A] [SELECT NEW A(x.nummer, x.nachname, x.vorname) FROM de.xxx.A x WHERE x]

Es gibt in A einen Konstruktor fuer die entsprechenden Parameter.
Im Internet finde ich nur immer dieses eine Tutorial zu jpql und dort stehen 5 Zeilen zum select new statement und genau daran halte ich mich.

Vielen Dank für die Hilfe! :)

Gruß
bam
 
S

SlaterB

Gast
hmm, genau solche Probleme habe ich in HQL von Hibernate auch manchmal
dann poste doch mal
- diesen Konstruktor
- die DB-Tabellen-Definition
- evtl. Mapping

oder lade die Daten erstmal in der Form
SELECT x.nummer, x.name, x.vorname FROM A x WHERE x

in Hibernate geht das jedenfalls, da bekommt man eine Liste von Object[],
also laden und die Klassen der erzeugten drei Dinge ausgeben und mit dem Konstruktor vergleichen

versuche auch mal einen Konstructor
A(Object a, Object b, Object c)
zu definieren, und gibt darin die Klassen der Parameter aus,
falls int oder andere primitive Datentypen dabei, dann evtl. entsprechend modifiziert

-----

edit:
> org.hibernate.hql.ast.QuerySyntaxException

ok, auch Hibernate ;)
 

bam

Mitglied
Danke fuer die schnelle Antwort :)

Also
Code:
SELECT x.nummer, x.nachname, x.vorname FROM A x WHERE x
klappt leider nicht. Wird nichtmal als richtiges Statement verstanden.

Code:
Caused by: org.hibernate.hql.ast.QuerySyntaxException: unexpected AST node: x near line 1, column 87 [SELECT x.nummer, x.nachname, x.vorname FROM de.xxx.A x WHERE x]

Habe ich das vllt falsch verstanden? Der Kosntruktor ist denkbar simpel:

Code:
public A(Integer nummer, String nachname, String vorname){
        this.nummer = nummer;        
        this.nachname = nachname;
        this.vorname = vorname;
    }

Leider weiß ich weder was du genau mit db TabellenDefinition noch Mapping meinst :(

Gruß
bam[/code]
 
S

SlaterB

Gast
geht es nicht um eine Datenbank? eine Tabelle in einer Datenbank?
was könnte die Definition einer solchen Tabelle wohl sein?
SQL der Form CREATE TABLE?

oder versucht mal das mit

public A(Object a, Object b, Object c){
System.out.println(a.getClass().getName();
...
}
 

bam

Mitglied
Hab soeben deinen zweiten Tipp angewandt und jetzt klappts. Also Die Parameter Typen sind zwar die die ich angegeben habe also weiß ich nicht woran es liegt. Aber wenn ich statt den Primitives einfach Object angeben kriege ich das zurueck was ich brauche :)

:applaus: Vielen Dank!

Gruß
Viktor
 
S

SlaterB

Gast
> statt den Primitives

du hattest doch bisher Integer, String, String? das sind alles Klassen,

Object Object Object sollte keine Endlösung sein!,
nur zum Testen um zu erkennen, dass z.B. Long statt Integer ankommt oder irgendein höheres Objekt statt String..
 

bam

Mitglied
Es sind aber genau die Typen wie ich sie hatte:
Integer, String, String.

Habe aber gerade das komische Gefühl, dass Netbeans die Änderungen nicht sofort ... "verarbeitet". Gerade hat es funktioniert. Kurze Zeit später wieder nicht (ohne Änderungen......)
 

bam

Mitglied
Hier noch die relevanten Table Teile:

Code:
USE [xyxyxyx]
GO
/****** Objekt:  Table [dbo].[A]    Skriptdatum: --- *****/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[A](
	[NUMMER] [int] NOT NULL,

....
....
[NACHNAME] [nvarchar](30) COLLATE Latin1_General_CI_AS NULL,
[VORNAME] [nvarchar](30) COLLATE Latin1_General_CI_AS NULL,
....
....

[EAEH1500NAEH] [bit] NULL,
 CONSTRAINT [PK_A] PRIMARY KEY CLUSTERED 
(
	[NUMMER] ASC
)WITH (PAD_INDEX  = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
SET ANSI_PADDING OFF


Falls es vllt etwas bringt.
 

bam

Mitglied
Es lag tatsächlich zum Teil an Netbeans. Nachdem ich es 5 Minuten mit den richtigen Klassen stehen gelassen habe, klappt es jetzt. Bin mir aber sicher, dass ich es genau so schon oefters probiert habe und es nicht funktioniert hat :bahnhof:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Select Statement mit Hibernate Data Tier 2
A EclipseLink JPA - ManyToMany und Select Abfrage Data Tier 8
G Hibernate select update no wait Data Tier 8
ruutaiokwu select auf select in sql server Data Tier 3
R JPA JP-QL-SELECT Befehl für Entities Data Tier 1
G Hibernate gleicher select unterschiedliche Ergebnisse Data Tier 7
T [JPA] SELECT wert IF Data Tier 5
G Wo ist der Unterschied bei diesem Select? Data Tier 19
L Gesamte Datenbank durchsuchen + statement logging Data Tier 4
neonfly Hibernate erzeugt falsches SQL Statement (Hibernate & mySql) Data Tier 6
D Performance Problem mit Prepared Statement Data Tier 6
N Problem beim initialisieren des Caches Data Tier 0
S JPA Problem mit Cascading Data Tier 1
M Eclipse 4 RCP Hibernate Problem Data Tier 3
C JPA FetchType.LAZY, Relation @OneToMany und Problem mit dem update Data Tier 1
K Problem mit EJBs und Transaktionen Data Tier 0
G JPA: Entity Klasse @JoinColumns Problem Data Tier 2
M JPA Problem: java.sql.SQLSyntaxErrorException: Data Tier 7
H Hibernate Problem mit Lazy Loading bei @OneToMany Collections Data Tier 5
M MySql und JPA-Timestamp Problem Data Tier 8
J Hibernate Problem bei Master-Detail-Tabellen Data Tier 5
A JPA - ManyToMany Problem - keine Unique Mehrfachzuweisungen Data Tier 4
M Problem beim Laden von Objekten, die von anderen Applikationen in eine DB eingefügt wurden Data Tier 5
M Problem mit @Temporal Mapping und SQL Server Data Tier 3
P JPA - HashMap mit Many-to-Many Relation Problem Data Tier 4
B Problem mit @ManyToMany und CascadeType.ALL Data Tier 3
Blackskyliner [JPA][Anfänger] Problem mit Wertzuweisung aus Verbundtabelle Data Tier 2
B Problem mit org.hibernate.LazyInitializationException Data Tier 11
B DatenquellenUpdater extends Thread - Problem mit PermGenSpace Data Tier 5
S Problem beim Insert mit Hibernate Data Tier 9
Y [openJPA] Problem mit Transaktion? Data Tier 2
A @SecondaryTable Problem Data Tier 9
N Problem beim session.flush(); Data Tier 17
Y Postgres und JPA - Primärschlüssel Problem Data Tier 3
P SQL PRoblem Hibernate? Data Tier 8
Y EJB Problem mit Transaktionen Data Tier 7
M Transaction / Session Problem Data Tier 4
G JPA 2.0 Query Problem Data Tier 3
P CORBA Problem bei EJB 3.0 Anwendung in Glassfish v3 Data Tier 7
F Problem mit Hibernate Schema Update Data Tier 2
S Lazy loading Problem Data Tier 2
M Insert-Problem mit JPA/Hibernate Data Tier 4
megachucky JPA - Problem mit Persistence Unit / Context Data Tier 1
H Hibernate Problem Data Tier 4
T Problem mit openJPA Data Tier 7
P Problem mit Data Tier 9
GilbertGrape Cascade Problem (Hibernate) Data Tier 3
C JPA Problem mit attributeOverride und mehrspaltigem PK Data Tier 2
boxi Hibernate Lazy Loading Problem Data Tier 2
M Problem mit Hibernate und SLF4J - NoSuchMethodException Data Tier 3
G Connection Problem - WAS 6.1, Hibernate, OS Authentication Data Tier 1
K Hibernate update-Problem Data Tier 36
J hibernate problem Data Tier 14
N Hibernate - Problem mit Update/Insert Data Tier 4
B Problem mit @PersistenceContext Data Tier 4
G Problem with mapped of the tables at one to one relationship Data Tier 8

Ähnliche Java Themen

Neue Themen


Oben