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.
Hier meine Klasse Artikel:
und hier die Klasse Schmuckstück:
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
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
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.
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);
}
}
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;
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;
Java:
Session ses = HibernateUtil.getInstance().getCurrentSession();
selectedArtikel.load(ses, selectedArtikel.getID());
Ich hoffe mir kann hier wer helfen.
Lg Vincenz