JPA getSingleResult(...) wirft keine erwartete NonUnique-Exception

Diskutiere getSingleResult(...) wirft keine erwartete NonUnique-Exception im Data Tier Forum; Hallo zusammen, ich habe erwartet, dass die TypedQuery-Methode getSingleResult mir eine NonUnique-Exception wirft, wenn sie in der Datenbank...

  1. ratnalein
    ratnalein Neues Mitglied
    Hallo zusammen,

    ich habe erwartet, dass die TypedQuery-Methode getSingleResult mir eine NonUnique-Exception wirft, wenn sie in der Datenbank mehrere zutreffende Sätze findet. Die Methode wirft aber erstaunlicherweise keinerlei Exception aus:

    Code (Java):

    @Entity
    @Table(name = "SCHUELER", catalog = "", schema = "RATNA")
    @NamedQuery(name = Schueler.NQ_FIND_BY_ID, query = "SELECT n FROM Schueler n WHERE n.Id = :Id")
    public class Schueler implements Serializable {
        private static final long serialVersionUID = -2115339582921931042L;

        /**
         * Named query für die Suche nach einem Schueler
         */

        public static final String NQ_FIND_BY_ID = "Schueler.findByID";

        @Id
        @Column(name = "ID", unique = true)
        private String Id;

        @Column(name = "NAME")
        private boolean name;

            ...
     
    Meine getSingleResult wird so aufgerufen:
    Code (Java):

     TypedQuery<Schueler> query = em.createNamedQuery("Schueler.findByID", Schueler.class);
     Schueler result = query.getSingleResult();
     
    Die Schueler-Tabelle ist so bestückt:
    Code (Text):

    ID    NAME
    ------------
    1021 Ratna
    1021 Ratna
    1021 Ratna
    1021 Ratna
    1032 Wolfgang
    1032 Wolfgang
    ...
     
    Wenn ich jetzt den TypedQuery mit dem Suchparameter "1021" ausführe, dann bekomme ich tatsächlich einen Datensatz, obwohl in der Datenbank ja eigentlich mehrere solche gleiche Sätze sich befinden. Ich hätte erwartet dass mir eine NonUnique-Exception um die Ohren fliegen würde.

    Die Spalte ID ist gewollt nicht mit dem Unique-Constraint erstellt.

    Daher meine Fragen:
    1. Funktioniert getSingleResult lediglich auf einer Unique-Spalte?
    2. Liegt es vielleicht daran, dass die Datensätze zwar mehrfach gespeichert sind, sie sind aber allesamt gleich? Daher sieht JPA dies nicht als Fehler?

    Vielen lieben Dank.

    Viele Grüße aus Rheinland,

    Eure Ratna
     
    Zuletzt von einem Moderator bearbeitet: 26. Jan. 2015
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
Die Seite wird geladen...

getSingleResult(...) wirft keine erwartete NonUnique-Exception - Ähnliche Themen

InputStream im Servlet wirft Exception
InputStream im Servlet wirft Exception im Forum Java Basics - Anfänger-Themen
Warum wirft mir das Programm diesen Fehler?
Warum wirft mir das Programm diesen Fehler? im Forum Allgemeine Java-Themen
Netty Client wirft Fehler!
Netty Client wirft Fehler! im Forum Netzwerkprogrammierung
Zwei Arrays zippen wirft eine ArrayIndexOutOfBoundsException
Zwei Arrays zippen wirft eine ArrayIndexOutOfBoundsException im Forum Java Basics - Anfänger-Themen
WebSocket in Tomcat wirft 404
WebSocket in Tomcat wirft 404 im Forum Allgemeines EE
Thema: getSingleResult(...) wirft keine erwartete NonUnique-Exception