From c2988d5a8e211792ef2deae4e14776e3de320a93 Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Sat, 3 Apr 2021 14:51:09 +0200 Subject: [PATCH] Implement Trip model in XML --- .../dst/ass1/jpa/listener/TripListener.java | 20 ++++++++++++++++ .../java/dst/ass1/jpa/model/impl/Trip.java | 23 ------------------- .../dst/ass1/jpa/model/impl/TripInfo.java | 2 +- 3 files changed, 21 insertions(+), 24 deletions(-) create mode 100644 ass1-jpa/src/main/java/dst/ass1/jpa/listener/TripListener.java diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/listener/TripListener.java b/ass1-jpa/src/main/java/dst/ass1/jpa/listener/TripListener.java new file mode 100644 index 0000000..4eb21c1 --- /dev/null +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/listener/TripListener.java @@ -0,0 +1,20 @@ +package dst.ass1.jpa.listener; + +import dst.ass1.jpa.model.ITrip; + +import javax.persistence.PrePersist; +import javax.persistence.PreUpdate; +import java.util.Date; + +public class TripListener { + @PrePersist + public void prePersist(ITrip trip) { + trip.setCreated(new Date()); + trip.setUpdated(new Date()); + } + + @PreUpdate + public void preUpdate(ITrip trip) { + trip.setUpdated(new Date()); + } +} diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Trip.java b/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Trip.java index 34f3c94..68c7876 100644 --- a/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Trip.java +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Trip.java @@ -7,40 +7,17 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Date; -import static dst.ass1.jpa.util.Constants.*; - @Entity public class Trip implements ITrip { - @Id @GeneratedValue private Long id; - private Date created; - private Date updated; - private TripState state; - - @OneToOne(targetEntity = Location.class, optional = false) private ILocation pickup; - - @OneToOne(targetEntity = Location.class, optional = false) private ILocation destination; - - @ManyToMany(targetEntity = Location.class) - @JoinTable( - name = J_TRIP_LOCATION, - joinColumns = @JoinColumn(name = I_TRIP), - inverseJoinColumns = @JoinColumn(name = I_LOCATION) - ) private Collection stops = new ArrayList<>(); - - @OneToOne(targetEntity = TripInfo.class) private ITripInfo tripInfo; - - @OneToOne(targetEntity = Match.class) private IMatch match; - - @OneToOne(targetEntity = Rider.class) private IRider rider; @Override diff --git a/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/TripInfo.java b/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/TripInfo.java index 48060a0..c0cb782 100644 --- a/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/TripInfo.java +++ b/ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/TripInfo.java @@ -23,7 +23,7 @@ public class TripInfo implements ITripInfo { private Integer riderRating; - @OneToOne(targetEntity = Trip.class) + @OneToOne(targetEntity = Trip.class, optional = false) private ITrip trip; @Override