Hallo allerseits,
ich habe ein (Verständnis-)Problem bzgl. JPA/Hibernate.
Ich habe zwei Anwendungen. Die erste Anwendung erlaubt Kunden Bestellungen abzugeben und die zweite soll diese Information "live" anzeigen.
Die Datenbank sieht ungefähr so aus:
Master-Tabelle: Kunde
Detail-Tabelle: Bestellungen
Anwendung 1:
Der Kunde führt eine Bestellung aus. Diese Bestellung wird persistiert und kann auch in dieser Anwendung abgerufen werden.
Anwendung 2:
Wenn man den Kunden auswählt wird eine Abfrage ausgeführt, welche alle Bestellungen des Kunden zurückgeben soll. Leider bekomme ich aber nur die Bestellungen, die vor dem Start der Anwendung 2 bereits persistiert waren.
Frage: Wie bekomme ich die Anwendung 2 dazu, alle Bestellungen, die sich in der Datenbank befinden, zu laden?
Die Entität Orders (Bestellungen) besitzt ein Feld customer:
@ManyToOne
@JoinColumn(name="coustomerId")
private Customer customer;
An der grundsätzlichen Konfiguration kann es eigentlich nicht liegen, da ich ja ein Ergebnis erhalte. Leider halt unvollständig ...
Die Bestellungen werden folgendermaßen geladen:
Wie gesagt, das Ergebnis dieser Abfrage beinhaltet alle Bestellungen, die vor derm Start der Anwendung 2 bereits in der DB gespeichert waren.
Vielleicht kann mich jemand auf die richtige Spur setzen.
Gruß
Michael
ich habe ein (Verständnis-)Problem bzgl. JPA/Hibernate.
Ich habe zwei Anwendungen. Die erste Anwendung erlaubt Kunden Bestellungen abzugeben und die zweite soll diese Information "live" anzeigen.
Die Datenbank sieht ungefähr so aus:
Master-Tabelle: Kunde
Detail-Tabelle: Bestellungen
Anwendung 1:
Der Kunde führt eine Bestellung aus. Diese Bestellung wird persistiert und kann auch in dieser Anwendung abgerufen werden.
Anwendung 2:
Wenn man den Kunden auswählt wird eine Abfrage ausgeführt, welche alle Bestellungen des Kunden zurückgeben soll. Leider bekomme ich aber nur die Bestellungen, die vor dem Start der Anwendung 2 bereits persistiert waren.
Frage: Wie bekomme ich die Anwendung 2 dazu, alle Bestellungen, die sich in der Datenbank befinden, zu laden?
Die Entität Orders (Bestellungen) besitzt ein Feld customer:
@ManyToOne
@JoinColumn(name="coustomerId")
private Customer customer;
An der grundsätzlichen Konfiguration kann es eigentlich nicht liegen, da ich ja ein Ergebnis erhalte. Leider halt unvollständig ...
Die Bestellungen werden folgendermaßen geladen:
Java:
public List<Order> listOrdersFromCustomer(String condition,
String orderBy, Customer c) throws Exception {
condition = "From Order as o Where o.customer = ?";
Session session = SessionFactoryUtil.getInstance().getCurrentSession(); // Hibernate Session
session.refresh( c ); // ich dachte, das hilft vielleicht. Leider nein.
Query query = session.createQuery( condition).setEntity(0, c);
return query.list();
}
Vielleicht kann mich jemand auf die richtige Spur setzen.
Gruß
Michael