Native Abfrage im Ruhezustand: Fehler „Ungültiger Spaltenname“ SQL-17006Java

Java-Forum
Guest
 Native Abfrage im Ruhezustand: Fehler „Ungültiger Spaltenname“ SQL-17006

Post by Guest »

Code: Select all

package com.abc.def.model;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.Embeddable;
import javax.persistence.IdClass;
import java.util.Date;
import java.io.Serializable;

@NamedNativeQuery(name="getMetadata",query="
select a.name alias1,a.fullname alias2,
b.name alias3,b.age alias4,
c.height alias5,c.something alias6,
d.otherthing alias7
from lame_table_name a,
lame_table_name_2 b
where a.id = b.id
and b.id = c.id
and c.id = d.id
and d.id = :namedparameter
order by a.index,b.index
",
resultClass=MetadataModel.class)

@Entity
@IdClass(SomeIdClass.class)

public class MetadataModel{

@Id @Column("alias1")
private Type alias1property;

@Id @Column("alias2")
private Type2 alias2property;

@Column("alias3")
private Type3 alias3property;

//getters and setters
}

@Embeddable
class SomeIdClass implements Serializable{

//serialVersionUID line

@Id @Column("alias1")
private Type alias1property;

@Id @Column("alias2")
private Type2 alias2property;

//getter and setters
}
Der Fehler ist SQL-17006, Ungültiger Spaltenname, ich habe den ganzen Tag Variationen dieses Setups ausprobiert
Soll ich versuchen, Column("lame_table_name. name")

Ich habe auch versucht, SqlResultSetMapping zu verwenden (und @Column aus Feldern von POJO entfernt) (und alle Spaltenaliase im columns-Attribut von anzugeben). SqlResultSetMapping) (Sollen wir das Resultsetmapping erneut angeben, wenn wir die Abfrage über die setResultSetMapping-Methode der SQLQuery-Schnittstelle ausführen?)

Code: Select all

package com.abc.def.model;

import javax.persistence.Column;
import javax.persistence.Id;
import javax.persistence.Entity;
import javax.persistence.Embeddable;
import javax.persistence.IdClass;
import java.util.Date;
import java.io.Serializable;
//other imports for the SqlResultSetMapping

@NamedNativeQuery(name="getMetadata",query="
select a.name alias1,a.fullname alias2,
b.name alias3,b.age alias4,
c.height alias5,c.something alias6,
d.otherthing alias7
from lame_table_name a,
lame_table_name_2 b
where a.id = b.id
and b.id = c.id
and c.id = d.id
and d.id = :namedparameter
order by a.index,b.index
",
resultSetMapping="metaDataMapping")

@SqlResultSetMapping(name="metaDataMapping",
entities=@EntityResult(entityClass=MetadataModel.class,
fields = {@FieldResult(name="alias1Property",column="alias1")
//so on
}

)
)

@Entity
@IdClass(SomeIdClass.class)

public class MetadataModel{

private Type alias1property;

private Type2 alias2property;

private Type3 alias3property;

//getters and setters
}

//composite class, exactly as above

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post