Hibernate Reads Nulls in OneToMany

Diskutiere Reads Nulls in OneToMany im Data Tier Forum; Hallo, ich stehe hier vor einem sehr ungewöhnlichem Problem. Mein Programm ist eigentlich gut gelaufen bis jetzt, aber auf einmal werden bei...

  1. moessi91
    moessi91 Neues Mitglied
    Hallo, ich stehe hier vor einem sehr ungewöhnlichem Problem.
    Mein Programm ist eigentlich gut gelaufen bis jetzt, aber auf einmal werden bei einem load meiner hibernateobjekte nulls in meine listen geladen.
    Ich zeige das mal auf:
    Hier meine Klasse Persis, welche die ganzen Lade und Speichervorgänge übernehmen soll.
    Code (Java):

    public void load(Session session, long ID) throws HibernateException{
            Transaction tx = session.beginTransaction();
            try{
                session.load(this, ID);
                session.flush();
                tx.commit();
                session.clear();
            }catch(HibernateException ex){
                ex.printStackTrace();
                tx.rollback();
                session.clear();
                throw new HibernateException(ex);
            }
           
        }
        public void saveOrUpdate(Session session) throws HibernateException{
            Transaction tx = session.beginTransaction();
            try{
                session.saveOrUpdate(this);
                session.flush();
                tx.commit();
                session.clear();
            }catch(HibernateException ex){
                ex.printStackTrace();
                tx.rollback();
                session.clear();
                throw new HibernateException(ex);
            }
        }
        public void delete(Session session) throws HibernateException{
            Transaction tx = session.beginTransaction();
            try{
               
                session.delete(this);
                session.flush();
                tx.commit();
                session.clear();
            }catch(HibernateException ex){
                ex.printStackTrace();
                tx.rollback();
                session.clear();
                throw new HibernateException(ex);
            }
        }
        public void merge(Session session) throws HibernateException{
            Transaction tx = session.beginTransaction();
            try{
                session.merge(this);
                session.flush();
                tx.commit();
                session.clear();
            }catch(HibernateException ex){
                ex.printStackTrace();
                tx.rollback();
                session.clear();
                throw new HibernateException(ex);
            }
        }
     
    Hier meine Klasse Artikel:
    Code (Java):

    @Entity
    @Table(name = "artikel")
    @Inheritance(strategy=InheritanceType.JOINED)
    public class Artikel extends Persis implements Serializable {
       
        @Id
        @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "artikel_seq")
        @SequenceGenerator(name = "artikel_seq", sequenceName = "artikel_seq", initialValue = 1000, allocationSize = 1)
        @Column(name="pk_artikel")
        private long ID;
       
        @Column(name="bezeichnung", length = 80)
        private String bezeichnung;
       
        @Column(name="einkaufspreis")
        private double lfEinkaufspreis;
       
        @Column(name="verkaufspreis")
        private double lfVerkaufspreis;
       
        @Column(name="abwertung")
        private double lfAbwertung;
       
        @JoinColumn(name="fk_marke", referencedColumnName="pk_marke")
        @OneToOne
        private Marke obMarke;
       
        @Column(name="einkaufsdatum")
        @Temporal(javax.persistence.TemporalType.DATE)
        private Date einkaufsdatum;
       
        @Column(name="stueckzahl")
        private int intStueckZahl;
       
        @Column(name="vkpberechnung")
        private String vkpBerechnen;
       
        @Column(name="artikelnummer", length = 25)
        private String artikelnummer;

        @ManyToOne
        Kunde obKunde;
     
    und hier die Klasse Schmuckstück:
    Code (Java):

    @Entity
    @Table(name="schmuckstueck")
    @PrimaryKeyJoinColumn(name="pk_schmuckstueck", referencedColumnName="pk_artikel")
    public class Schmuckstueck extends Artikel{
       
        @OneToMany(mappedBy="schmuckstueck", targetEntity=Edelmetall.class, orphanRemoval=true, cascade= CascadeType.ALL)
        @LazyCollection(LazyCollectionOption.FALSE)
        @OrderColumn(name="pk_edelmetall")
        private List<Edelmetall> alEdelmetall;
       
        @OneToMany(mappedBy="schmuckstueck", targetEntity=Edelstein.class, orphanRemoval=true, cascade= CascadeType.ALL)
        @OrderColumn(name="pk_edelstein")
        @LazyCollection(LazyCollectionOption.FALSE)
        private List<Edelstein> alEdelsteine;
       
        @Column(name="art")
        private String art;
     
    Ich hoffe ich habe alle wichtigen Daten gepostet sonst bitte melden. Ich habe das Problem, dass wenn ich die jetzt ein Schmuckstück Lade mit
    Code (Java):

    Session ses = HibernateUtil.getInstance().getCurrentSession();
            selectedArtikel.load(ses, selectedArtikel.getID());
     
    Dann lädt hibernate in die Listen alEdelsteine oder alEdelmetall in die ersten einträge Nulls hinein und ich habe echt keinen schimmer warum. Es werden immer n-1 null in die Listen geladen. Also wenn ich 4 wirklich angelegt habe sind 3 null drinnen.
    Ich hoffe mir kann hier wer helfen.

    Lg Vincenz
     
  2. Vielleicht hilft dir dieser Java-Kurs hier weiter --> (hier klicken)
  3. moessi91
    moessi91 Neues Mitglied
    Dieser Error tritt nicht auf wenn ich Hibernate 3.2 verwende.
     
Die Seite wird geladen...

Reads Nulls in OneToMany - Ähnliche Themen

Matrixen berechnen nach Worker Master Paradigma mit Threads
Matrixen berechnen nach Worker Master Paradigma mit Threads im Forum Java Basics - Anfänger-Themen
Threads - java.lang.IllegalThreadStateException
Threads - java.lang.IllegalThreadStateException im Forum Allgemeine Java-Themen
Kleine Frage zu Threads
Kleine Frage zu Threads im Forum Java Basics - Anfänger-Themen
Mit 2 Threads eine Zahl hochzählen
Mit 2 Threads eine Zahl hochzählen im Forum Java Basics - Anfänger-Themen
Internet Broswer in Threads öffnen
Internet Broswer in Threads öffnen im Forum Allgemeine Java-Themen
Thema: Reads Nulls in OneToMany