Fehler bei SQL Abfrage MAX

E

EJB3.0User

Gast
Hallo ich bekommen folgenden Fehler wenn ich versuche diese Abfrage zu starten :

Java:
java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: wa_pos is not mapped [SELECT MAX(schein_nr) FROM wa_pos]

Java:
Query query = manager.createQuery("SELECT MAX(schein_nr) FROM wa_pos");
        @SuppressWarnings("unchecked")
        Long result = Long.parseLong(query.getSingleResult().toString());
        return result+1;


Danke:)
 
Zuletzt bearbeitet von einem Moderator:
E

EJB3.0Anfänger

Gast
ok, hab ein abbild gemacht von der Tabelle die Entity heißt :

WaPos :)

Java:
        Query query = manager.createQuery("SELECT * FROM wa_kopf");
        @SuppressWarnings("unchecked")
        List<WaKopf> kopf = query.getResultList();
        long retVal = 0;
        for(WaKopf _kopf : kopf){
        	if(retVal < _kopf.getPk().getScheinNr()){
        	   retVal = _kopf.getPk().getScheinNr();
        	}
        	
        }
        return retVal;

Java:
unexpected token: * near line 1, column 8 [SELECT * FROM wa_kopf]

ich versteh EJB 3.0 noch nicht ganz:( (Azubi :) )
 
E

EJB3.0Anfänger

Gast
Java:
@Entity
@Table(name = "WA_KOPF")
public class WaKopf implements Serializable {
    private static final long serialVersionUID = 1L;

    @EmbeddedId
    private Pk pk;

    @Column(name = "BUCHUNGSSCHLUESSEL")
    private String buchungsSchluessel;

    @Column(name = "TEXT")
    private String text;

    @Column(name = "BEARB_DATUM")
    @Temporal(TemporalType.TIMESTAMP)
    private Date bearbDatum;

    @Column(name = "BEARB_BENUTZER")
    private String bearbBenutzer;

    @Column(name = "GESELLSCHAFT")
    private Long gesellschaft;

    @Column(name = "KD_NR")
    private Long kdNr;

    @Column(name = "MDEFT")
    private Long mdeft;
    
    public WaKopf() {
    }
    
    public Pk getPk() {
        return pk;
    }

    public void setPk(Pk pk) {
        this.pk = pk;
    }

    public String getBuchungsSchluessel() {
        return buchungsSchluessel;
    }

    public void setBuchungsSchluessel(String buchungsSchluessel) {
        this.buchungsSchluessel = buchungsSchluessel;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public Date getBearbDatum() {
        return bearbDatum;
    }

    public void setBearbDatum(Date bearbDatum) {
        this.bearbDatum = bearbDatum;
    }

    public String getBearbBenutzer() {
        return bearbBenutzer;
    }

    public void setBearbBenutzer(String bearbBenutzer) {
        this.bearbBenutzer = bearbBenutzer;
    }

    public Long getGesellschaft() {
        return gesellschaft;
    }

    public void setGesellschaft(Long gesellschaft) {
        this.gesellschaft = gesellschaft;
    }

    public Long getKdNr() {
        return kdNr;
    }

    public void setKdNr(Long kdNr) {
        this.kdNr = kdNr;
    }

    public Long getMdeft() {
        return mdeft;
    }

    public void setMdeft(Long mdeft) {
        this.mdeft = mdeft;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((pk == null) ? 0 : pk.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        WaKopf other = (WaKopf) obj;
        if (pk == null) {
            if (other.pk != null)
                return false;
        } else if (!pk.equals(other.pk))
            return false;
        return true;
    }



    @Embeddable
    public static class Pk implements Serializable {
        private static final long serialVersionUID = 1L;

        @Column(name = "MANDANT")
        private Long mandant;

        @Column(name = "SCHEIN_NR")
        private Long scheinNr;

        public Pk() {
        }

        public Long getMandant() {
            return mandant;
        }

        public void setMandant(Long mandant) {
            this.mandant = mandant;
        }

        public Long getScheinNr() {
            return scheinNr;
        }

        public void setScheinNr(Long scheinNr) {
            this.scheinNr = scheinNr;
        }

        @Override
        public int hashCode() {
            final int prime = 31;
            int result = 1;
            result = prime * result + ((mandant == null) ? 0 : mandant.hashCode());
            result = prime * result + ((scheinNr == null) ? 0 : scheinNr.hashCode());
            return result;
        }

        @Override
        public boolean equals(Object obj) {
            if (this == obj)
                return true;
            if (obj == null)
                return false;
            if (getClass() != obj.getClass())
                return false;
            Pk other = (Pk) obj;
            if (mandant == null) {
                if (other.mandant != null)
                    return false;
            } else if (!mandant.equals(other.mandant))
                return false;
            if (scheinNr == null) {
                if (other.scheinNr != null)
                    return false;
            } else if (!scheinNr.equals(other.scheinNr))
                return false;
            return true;
        }
    }

}

Danke für die Hilfe:)
 
S

SlaterB

Gast
"Select *" gibts in HQL nicht und du musst die Entity angeben, nicht die SQL-Tabelle,
gar keine Grundlagen bekannt?

Query query = manager.createQuery("FROM WaKopf");
 
E

EJB3.0Anfänger

Gast
mh ne .. eher nicht :) , wenn ihr was zum nachlesen habt gerne:)

hab das jetzt so...



Java:
org.hibernate.hql.ast.QuerySyntaxException: Wa_Kopf is not mapped [FROM Wa_Kopf]

Java:
        Query query = manager.createQuery("FROM Wa_Kopf");
        @SuppressWarnings("unchecked")
        List<WaKopf> kopf = query.getResultList();
        long retVal = 0;
        for(WaKopf _kopf : kopf){
        	if(retVal < _kopf.getPk().getScheinNr()){
        	   retVal = _kopf.getPk().getScheinNr();
        	}
        }
        return retVal;
 
S

SlaterB

Gast
ich sage dir vor
> Query query = manager.createQuery("FROM WaKopf");
und erzähle dir im Text haargenau "du musst die Entity angeben, nicht die SQL-Tabelle"

und du schreibst immer noch
> Query query = manager.createQuery("FROM Wa_Kopf");
und wunderst dich über die Exception?
Respekt, das muss man erstmal hinbekommen
 

mvitz

Top Contributor
Nein, deine Entity heißt, standardmäßig wie deine Klasse --> WaKopf
Diese Entity wird in der Tabelle (@Table) WA_KOPF gespeichert.

Da man mit dem Query createQuery die JPA Query Language (mir fällt gerade die korrekte Abkürzung nicht ein) benutzt, bezieht man sich hier auf Namen der Entities und nicht der Tabellen, in deinem Fall also WaKopf.

Edit: An deiner Stelle würde ich mal nach JPA Tutorials googlen und dir diese zu gemüte führen.
 
S

SlaterB

Gast
wonach richtet sich denn, wie eine Entiy heißt?
gut das mag Definitionsache sein, aber wenn ich schon explizit hinschreibe, dass es was anderes als der SQL-Tabellennamen sein soll
und wenn ich super-eindeutig sage, dass du "FROM WaKopf" als Query schreiben sollst, dann ist doch wohl mehr als sonnenklar,
dass ich als EntityName WaKopf ansehe, und wie auch immer diese nebensächliche Seitendiskussion ausgeht,
du musst "FROM WaKopf" schreiben

meine Güte
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Fehler wegen Rest-Schnittstelle Allgemeines EE 4
A JPA Fehler beim JPA-Projekt Allgemeines EE 12
pkm "Unable to cache bundle"-Fehler bei Apache Karaf Allgemeines EE 0
H JWebUnit Fehler: java.lang.NoClassDefFoundError: org/apache/regexp/RESyntaxException Allgemeines EE 24
mor16Euro Servlet Fehler code: The requested resource is not available Allgemeines EE 7
M Servlet Fehler beim Start der Serveranwendung Allgemeines EE 3
N Fehler 403 bei Sessiontimeout mit <security-constraint> Allgemeines EE 0
Q Fehler InitialContext.lookup Allgemeines EE 3
A LDAP Auth Fehler Allgemeines EE 5
J Fehler beim deployen von seam 2.2.2-Projekt Allgemeines EE 9
Ezra BIRT - Report erzeugt Fehler Allgemeines EE 26
JimPanse Tomcat Fehler nach redeploy Allgemeines EE 5
Z OSGi Implementierung - Fehler bei Import Package Allgemeines EE 9
H fehler beim deployen von ear file Allgemeines EE 2
M Fehler bei Javamail Session mit Glassfish 3 Allgemeines EE 3
C WebStart Fehler nach update auf Java 1.6 Allgemeines EE 2
A jsf: Servlet aufrufen, wie geht das? web.xml Fehler? Allgemeines EE 13
M Fehler in JSF Anwendung Allgemeines EE 4
J Konvertierungs-Fehler: Wert ''{0}'' für Modell ''{1}'' Allgemeines EE 10
N Jboss als Dienst -> Fehler 1053 Allgemeines EE 1
G Fehler, wenn <f:view> Tag als Startseite Allgemeines EE 2
R auf der Suche nach dem Fehler,Sessions + Arrays Allgemeines EE 4
K Datatable Löschen Fehler Allgemeines EE 6
A Problem / Fehler beim Einbinden einer Klasse in ein JSP Allgemeines EE 20
G JSTL Fehler Allgemeines EE 2
F Fehler beim deployen von jsp und servlet Allgemeines EE 7
F Buildscript Fehler weblogic/Deployer Allgemeines EE 2
T Jsp die mehrere Servlets aufruft erzeugt Fehler Allgemeines EE 10
M Fehler aufruf von Index.html Allgemeines EE 7
K [Sun AppServer 8.1] Fehler beim deployen Allgemeines EE 12
M EJB Fehler Allgemeines EE 2
I SQL Abfrage mit Variable Allgemeines EE 7
G SQL Abfrage Allgemeines EE 9
T Probleme mit Komplexerer ejb-ql Abfrage! Allgemeines EE 2
hampa Abfrage vor dem Löschen Allgemeines EE 11
D Abfrage der header daten funktionieren nicht. Allgemeines EE 2
B EJBQL vs. komplexe Abfrage Allgemeines EE 5
M Parmeter-Abfrage in JSF Allgemeines EE 3
B jsp include von html-datei mit javascript abfrage Allgemeines EE 8

Ähnliche Java Themen

Neue Themen


Oben