Wenn wir mehrere Einheiten mit unterschiedlichen Beziehungen zwischen ihnen (. ZB Event --1-> Venue --*-> Rooms
) JHipster erzeugt die folgenden für das Java-Back-End, was in Ordnung ist:starke Typisierung des Client-Modell in Schräg
@Entity
public class Event implements Serializable {
@ManyToOne
private Venue venue;
}
@Entity
public class Venue implements Serializable {
@OneToMany(mappedBy = "venue")
private Set<Room> rooms = new HashSet<>();
}
@Entity
public class Room implements Serializable {
}
Das Ersatzmodell in Angular ist nicht so stark typisiert. Stattdessen verwendet das Modell die BaseEntity
wenn es eine Beziehung ist:
export class Event implements BaseEntity {
constructor(public venue?: BaseEntity) {}
}
export class Venue implements BaseEntity {
constructor(public rooms?: BaseEntity[]) {}
}
export class Room implements BaseEntity {
constructor() {}
}
Mit Typoskript würden wir sehr diesen Code eingeben profitieren und so konnten wir zwischen Objekten navigieren, wie zum Beispiel:
this.event.venue.rooms;
this.event.venue.rooms[0].name;
Es wäre darum, die Modellklassen ohne BaseEntity
zu erzeugen, aber die Klassen selbst:
export class Event implements BaseEntity {
constructor(public venue?: Venue) {}
}
export class Venue implements BaseEntity {
constructor(public rooms?: Room[]) {}
}
export class Room implements BaseEntity {
constructor() {}
}
WDYT? Gibt es einen Grund, warum das Angular-Modell nicht so getippt ist wie das Java-Modell?