DB auslesen (Hibernate, Query, Parameter)

Hoerti

Mitglied
Hallo zusammen!

Ich habe ein Problem, an dem ich schon lange dranhänge. Und zwar habe ich in der DB eine Tabelle "Test" mit den Spalten "id, vorname, nachname". Momentan, da dies alles nur für Testzwecke ist, hat die Tabelle nur einen Eintrag
Die Namedquery lautet wie folgt:

Code:
@NamedQuery(name = "test.holealles", query="Select c from Test c")
So, mein Ziel ist es, den Vorname anzeigen zu lassen. Also habe ich eine statische Funktion geschrieben:
Code:
public static Test getVorname(String nachname){
        EntityManager em = JpaUtil.getEntityManager();
        return (Test) em.createNamedQuery("test.holealles").setParameter("nachname", nachname).getSingleResult();
    }

Als Fehler erhielt ich hierbei: 

 You have attempted to set a parameter value using a name of nachname that does not exist in the query string Select c from Test c.



Mit .getResultList hab ichs auch scho versucht. Wenn ich die Liste aber dann ausgeben lasse, bekomme ich nur die id.


Wo liegt da denn der Fehler??
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
hmm, vergleichen wir es mit einem anderen Problem:
du weißt ungefähr wie man mit Hammer, Säge und Co. umgehst, hast aus einem Baumstamm schon ein handliches Stück Holz gemacht,
was durchaus ein großer Teil der Arbeit ist,

und nun versuchst du deinen Hamster in den Holz-Käftig zu setzen, was nicht funktioniert, da dieser immer noch nur ein Stück Holz ist..

--------

wenn du nach Nachname filtern willst, dann musst du die Query auch entsprechend formulieren
"Select c from Test c where c.nachname = :nachname"
;)
 

Hoerti

Mitglied
Erstens einmal: was genau macht where c.nachname = :nachname?

Vergleicht das die Variable nachname mit der Spalte in der DB? Wenn ja, in der Variable steht ja garnichts drinnen, die will ich mir ja holen....

Zweites: Funktioniert so auch nicht, bekomme folgenden Fehler:

Code:
You have attempted to set a parameter value using a name of nachname that does not exist in the query string Select c from Test c where c.vorname = :vorname.
 

Eldorado

Bekanntes Mitglied
Hast du dir mal ein Tutorial für Hibernate durchgelesen?
Wenn ja, wie sieht dein Mapping(alternative Annotations in der Klasse) und die Klasse aus, die die Datenbanktabelle repräsentiert(Test?)?
 

Hoerti

Mitglied
Nein, mit Hibernate habe ich mich nicht auseinandergesetzt.

Dies ist die Klasse:

Code:
@NamedQuery(name = "test.holealles", query="Select c from Test c where c.vorname = :vorname")
@Entity
public class Test implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String vorname;
    private String nachname;

 
    public Test(){
         EntityManager em = JpaUtil.getEntityManager();

        Test t = getVorname(nachname);

        System.out.println(getVorname());
        
      //  for(Object o : namen){
      //      System.out.println(namen);
      //  }
        em.close();
    }

    public String getNachname() {
        return nachname;
    }

    public String getVorname() {
        return vorname;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (id != null ? id.hashCode() : 0);
        return hash;
    }
    public static Test getVorname(String nachname){
        EntityManager em = JpaUtil.getEntityManager();
        return (Test) em.createNamedQuery("test.holealles").setParameter("nachname", nachname).getSingleResult();
    }
    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Test)) {
            return false;
        }
        Test other = (Test) object;
        if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "test.Test[id=" + id + "]";
    }

}
 
S

SlaterB

Gast
ich sage dir dass du :nachname in die Query schreiben sollst und du fügst :vorname ein
und wunderst dich dann, dass Hibernate sagt, dass es keinen Parameter nachname finden kann?

der SELECT-Teil bestimmt, was gelesen wird, dort kannst du vielleicht auf Vorname einschränken, wenn du nur den Vornamen brauchst,
der WHERE-Teil schränkt die Ergebnissmenge ein, wenn du einen bestimmten Nachnamen suchst, dann such auch danach

aber ich will kaum alle SQL-Grundlagen hier erklären, du solltest vielleicht erstmal ohne Hibernate reines SQL üben
 

Hoerti

Mitglied
Reines Sql hatte ich ein Semester lang, danke ;)
Nur in der Java-Umgebung ist mir das ganze noch etwas fremd.


Ok, ich habe jetzt nachname versucht. Nun heißt es:

Code:
getSingleResult() did not retrieve any entities.

Das heißt, er findet keinen Nachnamen, oder wie?
Komisch... hier mal meine Tabelle Test:

ID VORNAME NACHNAME
---------------------- -------------------- --------------------
1 Max Mustermann
 
S

SlaterB

Gast
tja, wer weiß was du da machst, falscher Name, falscher Query-Aufbau (noch nicht neu gepostet),
keine Daten in der DB weil Abfrage zu früh (vor dem Einfügen), zu spät (schon wieder weg) oder in sonst einer Lücke,

da hilft nur ein umfassender Test:

in einer Methode direkt hintereinander:
- String nachname = ..;
- nachname ausgeben
- einzelnes Objekt suchen und ausgeben ob vorhanden
- ALLE Objekte laden, im selben Context, der nächst Befehl direkt dahinter, nichmal unterschiedliche Methoden, ausgeben,
- ALLE Objekte in einer Liste durchlaufen, jeweils Nachname mit dem eigenen Suchnamen vergleichen (equals)

wenn unter ALLEN Objekten einer mit dem gleichen Namen ist, dann wäre es langsam verwunderlich,
dann möglichst viel Code zu dem vollständigen Test posten
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H In hibernate.cfg.xml schreiben und auslesen Datenbankprogrammierung 0
D Hibernate: ArrayList in DB speichern und auslesen Datenbankprogrammierung 4
L JPA EclipseLink PostgreSQL auslesen mit Query Datenbankprogrammierung 2
Zrebna Lediglich interne DB-Verbindungen (Connections) auslesen - mittels Java Datenbankprogrammierung 4
L Oracle Oracle Datumsspalte auslesen Datenbankprogrammierung 5
A Umsätze der Bank auslesen Datenbankprogrammierung 7
G MySQL JDBC Metadaten auslesen aus .accdb -> Primärschlüssel manchmal erkannt manchmal nicht Datenbankprogrammierung 3
F Auslesen einer .dbf-Datei, Zuordnung Index Datenbankprogrammierung 0
NIckbrick MySQL Befehle aus Datenbank auslesen Datenbankprogrammierung 21
L MySQL ResultSet vollständig auslesen Datenbankprogrammierung 20
K SQLite Datenbank in App integrieren: Vor Auslesen schützbar? Datenbankprogrammierung 6
K Java Datenbank auslesen Datenbankprogrammierung 8
W Daten aus einer Datei von einem VServer auslesen Datenbankprogrammierung 1
J Onlinedatenbank einmalig auslesen Datenbankprogrammierung 1
E Wie kann ich textdateien, die als BLOB abgespeichert sind, aus der Datenbanktabelle auslesen? Datenbankprogrammierung 23
C MySQL Datenbank auslesen/beschreiben und Zusatz Datenbankprogrammierung 1
R MySQL Blob aus DB auslesen und einer Tabelle ausgeben Datenbankprogrammierung 7
E primaryKey auslesen - Datensätze abgleichen Datenbankprogrammierung 4
N SQL-Statement Auslesen des Resultset wird immer langsamer Datenbankprogrammierung 6
R MS-Access mit JAva auslesen Datenbankprogrammierung 7
2 MySQL Daten aus einer Array auslesen und MySQL Statment erstellen. Datenbankprogrammierung 5
E Tabellen nacheinander auslesen Datenbankprogrammierung 10
N HSQLDB Daten Auslesen Datenbankprogrammierung 3
E Werte auslesen Datenbankprogrammierung 3
O Metadaten / DatenbankAttribute Auslesen Datenbankprogrammierung 4
D Alle Werte aus DB auslesen und in Chart darstellen Datenbankprogrammierung 6
Ollek Auslesen DatenbanktabelleDatei iSeries Datenbankprogrammierung 10
C H2 Letzten Eintrag auslesen Datenbankprogrammierung 6
D MySQL Bild aus DB auslesen und auf FTP Speichern Datenbankprogrammierung 7
N Oracle txt. Datei auslesen-> verändern-> einlesen Datenbankprogrammierung 7
M JPA - Datenbanktabellen auslesen Datenbankprogrammierung 14
F NUR 3 datensätze auslesen Datenbankprogrammierung 6
M Datenbank (MySQL) auslesen Datenbankprogrammierung 3
S MySQL Datenbank auslesen - Treiberproblem Datenbankprogrammierung 12
F MySQL SSH Datenbank auslesen Datenbankprogrammierung 3
D Blob MimeTyp auslesen Datenbankprogrammierung 2
S Verschiedene Informationen gleichen Typs speichern und auslesen Datenbankprogrammierung 4
A PostgreSQL anfängerfrage: resultset zeilenweise auslesen Datenbankprogrammierung 2
S Werte aus Datenbank auslesen und in eine bestimmte Excelzelle eintragen Datenbankprogrammierung 2
P MySQL Objekt aus BLOB auslesen Datenbankprogrammierung 3
B String aus txtDatei auslesen und in Datenbank schreiben. Datenbankprogrammierung 8
B häppchenweises auslesen "lazy loading" von Datenbank Datenbankprogrammierung 13
D Csv auslesen und in mysql db schreiben Datenbankprogrammierung 9
K PostgreSQL PDF-Dateien in Datenbank speichern und auslesen Datenbankprogrammierung 4
E Datenbank auslesen mit JAVA Datenbankprogrammierung 2
W MySQL Datenbanken auslesen Datenbankprogrammierung 3
J Tabelle auslesen- knifflig Datenbankprogrammierung 7
W bestimmte Zeile mit bestimmter Spalte auslesen Datenbankprogrammierung 11
Plastagen DBC Dateien korrekt auslesen Datenbankprogrammierung 2
O vernümpftig Datumsangabe in mySQL DB speichern und auslesen Datenbankprogrammierung 4
M Derby insert, ID auslesen Datenbankprogrammierung 3
S Java objekt in MYSQL auslesen Datenbankprogrammierung 32
R Update Time auslesen Datenbankprogrammierung 2
A Datenbankanbindung an mySQL und Ein-/Auslesen der Daten Datenbankprogrammierung 4
MQue speziell Auslesen aus Datenbank Datenbankprogrammierung 5
C MP3 in DB als Blob, wieder auslesen und als MP3 speichern??? Datenbankprogrammierung 8
Antoras Passwort aus DB auslesen Datenbankprogrammierung 12
V tabellenName aus den Metadaten auslesen Datenbankprogrammierung 4
L primärschlüssel auslesen Datenbankprogrammierung 6
G Bild aus als OLE-Typ aus MS Acces auslesen Datenbankprogrammierung 3
G Namen der Datebank aus einer Connction auslesen Datenbankprogrammierung 3
S Fehler beim Auslesen von Daten Datenbankprogrammierung 6
S ResultSet variabel auslesen Datenbankprogrammierung 4
G Daten schneller aus einer DB auslesen Datenbankprogrammierung 9
T Metadaten Auslesen Datenbankprogrammierung 7
B Spaltennamen von MySQL Datenbank nach Java auslesen Datenbankprogrammierung 10
A Auslesen von Werten aus der DB in eine csv-Datei Datenbankprogrammierung 4
A Auslesen aus einer csv-Datei Datenbankprogrammierung 2
N Unbekannte Datenbank über Metadaten auslesen? Datenbankprogrammierung 9
A Funktionale Abhängigkeiten auslesen Datenbankprogrammierung 4
T Datenbanknamen eines Datenbankservers auslesen Datenbankprogrammierung 9
thE_29 Byte auslesen mit MS SQL Server Datenbankprogrammierung 4
W Auslesen von Tabellen einer MYSql Datenbank Datenbankprogrammierung 25
M Preparedstatement SQL-string auslesen Datenbankprogrammierung 13
M Mysql datenbank auslesen und mittels servlet wiedergeben Datenbankprogrammierung 3
G Oracle-Record auslesen Datenbankprogrammierung 2
M Letzter Datensatz mit auslesen(brauch kleinen Tipp) Datenbankprogrammierung 15
G Spalten Namen auslesen und Zeilen daten auslesen Datenbankprogrammierung 17
F JDBC Abfrage Werte auslesen Datenbankprogrammierung 2
V mysql - tree auslesen und richtig ordnen Datenbankprogrammierung 4
G DB auslesen und in ein JTextArea schreiben Datenbankprogrammierung 3
Z Auslesen aus einer mySQL Datenbank Datenbankprogrammierung 4
P MYSQL werte aus liste auslesen und anderen damit updaten Datenbankprogrammierung 4
T Creates der Datenbank auslesen Datenbankprogrammierung 10
W datenbankschema auslesen Datenbankprogrammierung 3
S Daten aus einer MySQL-Datenbank auslesen Datenbankprogrammierung 7
S metadaten/Tabellen des sqlservers auslesen Datenbankprogrammierung 8
S Tabellen auslesen in einer DB Datenbankprogrammierung 14
P Primärschlüssel direkt nach der Eingabe wieder auslesen Datenbankprogrammierung 7
M MySQL Tabellen in java auslesen? Datenbankprogrammierung 5
L DB Felder in einem Array speichern und wieder auslesen Datenbankprogrammierung 11
V MAX Wert und weitere auslesen Datenbankprogrammierung 2
D Zufällige Zeile auslesen Datenbankprogrammierung 6
G Auslesen und in TextBox anzeigen lassen Datenbankprogrammierung 7
D Problem mit auslesen deiner DBase Datenbank Datenbankprogrammierung 8
R Einen Integer-Wert aus einer MySQL DB auslesen Datenbankprogrammierung 2
G speichern und auslesen von daten aus einer datenbank Datenbankprogrammierung 8
X Vectoren in mySQL-Datenbank speichern und auslesen Datenbankprogrammierung 8
L Tabellennamen auslesen Datenbankprogrammierung 2
M Tablen auslesen und als Tree anzeigen lassen Datenbankprogrammierung 2

Ähnliche Java Themen


Oben