From b6c75c44c0ac6ddbcd0d7332d4b0a2b291d817ee Mon Sep 17 00:00:00 2001 From: Vlad Vesa Date: Sun, 19 May 2024 08:49:15 +0300 Subject: [PATCH] Fixing wrong database configuration. (#14) --- ...700__fix-wrong-column-for-export-table.sql | 1 + .../V20240516223701__fix-wrong-relation.sql | 13 ++++++++ .../domain/structs/ExportTable.java | 2 +- .../domain/structs/TravelTimesForTrip.java | 33 +++++-------------- .../domain/structs/TripPattern.java | 13 +++++--- 5 files changed, 32 insertions(+), 30 deletions(-) create mode 100644 app/src/main/resources/db/migration/V20240516223700__fix-wrong-column-for-export-table.sql create mode 100644 app/src/main/resources/db/migration/V20240516223701__fix-wrong-relation.sql diff --git a/app/src/main/resources/db/migration/V20240516223700__fix-wrong-column-for-export-table.sql b/app/src/main/resources/db/migration/V20240516223700__fix-wrong-column-for-export-table.sql new file mode 100644 index 000000000..c9a92983b --- /dev/null +++ b/app/src/main/resources/db/migration/V20240516223700__fix-wrong-column-for-export-table.sql @@ -0,0 +1 @@ +ALTER TABLE export_table RENAME COLUMN first_name TO file_name; diff --git a/app/src/main/resources/db/migration/V20240516223701__fix-wrong-relation.sql b/app/src/main/resources/db/migration/V20240516223701__fix-wrong-relation.sql new file mode 100644 index 000000000..7ed9be0b9 --- /dev/null +++ b/app/src/main/resources/db/migration/V20240516223701__fix-wrong-relation.sql @@ -0,0 +1,13 @@ +-- removing faulty constraints definitions +ALTER TABLE travel_times_for_trip_to_travel_times_for_path + DROP CONSTRAINT fk_tratimfortritotratimforpat_on_travel_times_for_stop_path; + +ALTER TABLE travel_times_for_trip_to_travel_times_for_path + DROP CONSTRAINT fk_tratimfortritotratimforpat_on_travel_times_for_trip; + +-- recreating new constraints +ALTER TABLE travel_times_for_trip_to_travel_times_for_path + ADD CONSTRAINT fk_tratimfortritotratimforpat_on_travel_times_for_stop_path FOREIGN KEY (for_path_id) REFERENCES travel_times_for_stop_paths (id); + +ALTER TABLE travel_times_for_trip_to_travel_times_for_path + ADD CONSTRAINT fk_tratimfortritotratimforpat_on_travel_times_for_trip FOREIGN KEY (for_trip_id) REFERENCES travel_times_for_trips (id); diff --git a/libs/core/src/main/java/org/transitclock/domain/structs/ExportTable.java b/libs/core/src/main/java/org/transitclock/domain/structs/ExportTable.java index 405c234b9..1fbf05e5a 100644 --- a/libs/core/src/main/java/org/transitclock/domain/structs/ExportTable.java +++ b/libs/core/src/main/java/org/transitclock/domain/structs/ExportTable.java @@ -46,7 +46,7 @@ public class ExportTable implements Serializable { @Column(name = "export_status") private int exportStatus; - @Column(name = "first_name") + @Column(name = "file_name") private String fileName; @Column(name = "file") diff --git a/libs/core/src/main/java/org/transitclock/domain/structs/TravelTimesForTrip.java b/libs/core/src/main/java/org/transitclock/domain/structs/TravelTimesForTrip.java index c6163a05a..9c17b1ec1 100644 --- a/libs/core/src/main/java/org/transitclock/domain/structs/TravelTimesForTrip.java +++ b/libs/core/src/main/java/org/transitclock/domain/structs/TravelTimesForTrip.java @@ -3,14 +3,13 @@ import com.querydsl.jpa.impl.JPAQuery; import jakarta.persistence.*; -import lombok.*; +import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.annotations.Cascade; import org.hibernate.annotations.CascadeType; import org.hibernate.annotations.DynamicUpdate; -import org.transitclock.domain.structs.QTravelTimesForTrip; import java.io.Serializable; import java.util.*; @@ -24,7 +23,7 @@ @Entity @Slf4j @DynamicUpdate -@Getter @Setter @ToString +@Data @Table( name = "travel_times_for_trips", indexes = { @@ -72,15 +71,13 @@ public class TravelTimesForTrip implements Serializable { private final String tripCreatedForId; @ManyToMany(fetch = FetchType.EAGER) - @JoinTable( - name = "travel_times_for_trip_to_travel_times_for_path", - joinColumns = { - @JoinColumn(name = "for_path_id", referencedColumnName = "id") - }, - inverseJoinColumns = { - @JoinColumn(name = "for_trip_id", referencedColumnName = "id") - } - ) + @JoinTable(name = "travel_times_for_trip_to_travel_times_for_path", + joinColumns = { + @JoinColumn(name = "for_trip_id", referencedColumnName = "id") + }, + inverseJoinColumns = { + @JoinColumn(name = "for_path_id", referencedColumnName = "id") + }) @Cascade({CascadeType.SAVE_UPDATE}) @OrderColumn(name = "list_index") private final List travelTimesForStopPaths = new ArrayList<>(); @@ -273,16 +270,4 @@ public TravelTimesForStopPath getTravelTimesForStopPath(int index) { public int numberOfStopPaths() { return travelTimesForStopPaths.size(); } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (!(o instanceof TravelTimesForTrip that)) return false; - return configRev == that.configRev && travelTimesRev == that.travelTimesRev && Objects.equals(id, that.id) && Objects.equals(tripPatternId, that.tripPatternId) && Objects.equals(tripCreatedForId, that.tripCreatedForId) && Objects.equals(travelTimesForStopPaths, that.travelTimesForStopPaths); - } - - @Override - public int hashCode() { - return Objects.hash(id, configRev, travelTimesRev, tripPatternId, tripCreatedForId, travelTimesForStopPaths); - } } diff --git a/libs/core/src/main/java/org/transitclock/domain/structs/TripPattern.java b/libs/core/src/main/java/org/transitclock/domain/structs/TripPattern.java index 7254a0cf9..63cf68ff2 100644 --- a/libs/core/src/main/java/org/transitclock/domain/structs/TripPattern.java +++ b/libs/core/src/main/java/org/transitclock/domain/structs/TripPattern.java @@ -528,9 +528,9 @@ public boolean isStopAtOrAfterStop(String stopId1, String stopId2) { * @return */ public List getStopIds() { - List list = new ArrayList(stopPaths.size()); - for (StopPath stopPath : stopPaths) list.add(stopPath.getStopId()); - return list; + return stopPaths.stream() + .map(StopPath::getStopId) + .collect(Collectors.toList()); } /** @@ -539,7 +539,9 @@ public List getStopIds() { * @return ID of last stop */ public String getLastStopIdForTrip() { - return stopPaths.get(stopPaths.size() - 1).getStopId(); + return Optional.ofNullable(getStopPath(stopPaths.size() - 1)) + .map(StopPath::getStopId) + .orElse(null); } /** @@ -560,7 +562,8 @@ public double getLength() { * @return The specified StopPath or null if index out of range */ public StopPath getStopPath(int index) { - if (index < 0 || index >= stopPaths.size()) return null; + if (index < 0 || index >= stopPaths.size()) + return null; return stopPaths.get(index); }