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