Auf der Grundlage der folgenden Anforderungen:Objektmodellierung Eltern-/Kind-Beziehung für Java DTOs für JPA ORM
Haben zwei Endpunkte, respecitively, die ich RestTemplate Client Spring bin mit konsumieren und zwei separate DTOs zu füllen. Dieser Teil ist fertig.
http://www.endpoint.com/Advertisement
enthält folgende JSON Array:
[{"startDate":"2017-01-29","cost":"$50000.00","id":1112,"name":"Porsche"},{"startDate":"2017-03-06","cost":"$27000.00","id":38626,"name":"BMW"}]
http://www.endpoint.com/Metric
enthält folgende JSON Array:
[{"clicks":1796,"views":13582,"id":20275,"parentId":1112},{"clicks":3295,"views":12697,"id":18564,"parentId":38626}]
Anforderung 1:
Die Beziehung zwischen den beiden Datentypen ist die einer übergeordneten und untergeordneten Beziehung, Werbung ist die übergeordnete und die metrische ist die untergeordnete. Die Metrik enthält metrische Daten, die zur Beschreibung der Gesamtleistung des übergeordneten Werbebuchungselements verwendet werden können. Sobald die Daten im richtigen Format vorliegen, speichern Sie sie lokal in einer Datenbank Ihrer Wahl. Speichern Sie die Daten in der Datenbank auf der Ankündigungsebene.
Anforderung 2:
eine Methode schreiben, die auf der Datenbank eine Abfrage führt alle Metriken für einen bestimmten übergeordneten Anzeige abzurufen. Geben Sie als nächstes ein Array zurück, das nur eindeutige Metriken enthält, basierend auf der Metrik-ID, und verwenden Sie nur ein Array im Code (d. H. Vor Ort Entfernen von Duplikaten). 3
Voraussetzung:
schreibt Datenbank Befehl/Abfrage (mit der Datenbank der Wahl) Gesamtzahl der Klicks und Ansichten auf der Anzeige Ebene pro Kind Metriken zu berechnen. Speichern Sie diese Werte neben jedem Anzeigenobjekt auf Anzeigenebene.
Also, im Grunde begann ich mit dem Objektdesign wie folgt aus:
@Entity
public class AdvertisementDto {
@Id
@GeneratedValue
private Long id;
private String startDate;
private String cost;
private String name;
// Getter & Setters
}
@Entity
public class MetricsDto extends AdvertisementDto {
@Id
@GeneratedValue
private Long id;
private Long parentId;
private int clicks;
private int views;
// Getter & Setters
}
Frage (n):
meine ORM-Design ist in Bezug auf die Eltern/Kind für Anforderung richtige Verhältnis 1 ?
Bin verwirrt, wenn mein Objektentwurf für Anforderung # 2 gilt & Anforderung # 3?
Wie würde ich die entsprechende Eltern-ID mit der Super-Klasse (AdvertisementDTO) füllen?
KLHauser - vielen Dank, dass Sie mir einen ersten Pass gegeben haben, ich schätze es sehr. Wie kann ich die in der Metrik befindliche übergeordnete ID der Werbung zuordnen? Ich sehe keine Metrik-ID irgendwo angegeben (soll es nicht einfach nur eine alte "ID" sein)? –
Es gibt keine patentId mehr. Der Zugriff erfolgt über advertisement.getMetrics() oder auf der anderen Seite metrisch.getAdvertisement(). – KLHauser