G
Guest
Gast
Habe eine Service-orientierte Struktur und nutze Spring und Hibernate.
Unter anderem habe ich ein Artikel-POJO das ich in der Datenbank speicchere (Artikelname, Beschreibung, Preis, EAN, Gewicht,...), nun will ich bei Preisänderungen den alten Preis merken.
Wie realisiere ich das am besten?
Bisher habe ich ein den Artikelpreis ausgelagert in ein seperates Objekt "ArticlePrice" (enthält Preis, ggf. Staffelpreise und Infos ob Restpostenpreis oder Sonderangebotspreis sowie Zeitstempel) und alte Preise in einem Array "oldArticlePrices" gespeichert. Habe dann eine transiente Methode "newPrice" in Article eingefügt der sich darum kümmert das der alte Preis ins Array verschoben wird und der neue Preis anschließend den alten ersetzt, allerdings ist das doch wieder Business-Logik die da nicht hingehört, oder?
Andererseits will ich die Logik aber auch nicht überall im Code duplizieren, irgendwie stehe ich momentan auf dem Schlauch, hat jemand eine Idee wie man das einigermaßen elegant lösen könnte? :bahnhof:
Die alten Artikelpreise brauche ich nur selten, müssten also nicht im Artikel-Objekt gespeichert werden (kostet ja auch nur unnötig Bandbreite bei der Übertragung des Objekts übers Netzwerk), aber wie stelle ich sonst sicher das die alten Preise gelöscht werden wenn der Artikel gelöscht wird? (bisher über cascade=CascadeType.ALL)
Wahrscheinlich gibts da eine super-simple Lösung aber ich stehe momentan einfach auf dem Schlauch...
Unter anderem habe ich ein Artikel-POJO das ich in der Datenbank speicchere (Artikelname, Beschreibung, Preis, EAN, Gewicht,...), nun will ich bei Preisänderungen den alten Preis merken.
Wie realisiere ich das am besten?
Bisher habe ich ein den Artikelpreis ausgelagert in ein seperates Objekt "ArticlePrice" (enthält Preis, ggf. Staffelpreise und Infos ob Restpostenpreis oder Sonderangebotspreis sowie Zeitstempel) und alte Preise in einem Array "oldArticlePrices" gespeichert. Habe dann eine transiente Methode "newPrice" in Article eingefügt der sich darum kümmert das der alte Preis ins Array verschoben wird und der neue Preis anschließend den alten ersetzt, allerdings ist das doch wieder Business-Logik die da nicht hingehört, oder?
Andererseits will ich die Logik aber auch nicht überall im Code duplizieren, irgendwie stehe ich momentan auf dem Schlauch, hat jemand eine Idee wie man das einigermaßen elegant lösen könnte? :bahnhof:
Die alten Artikelpreise brauche ich nur selten, müssten also nicht im Artikel-Objekt gespeichert werden (kostet ja auch nur unnötig Bandbreite bei der Übertragung des Objekts übers Netzwerk), aber wie stelle ich sonst sicher das die alten Preise gelöscht werden wenn der Artikel gelöscht wird? (bisher über cascade=CascadeType.ALL)
Wahrscheinlich gibts da eine super-simple Lösung aber ich stehe momentan einfach auf dem Schlauch...