From 86a01d37d927894f9ccd672504a05658286fa529 Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Mi, 07 Sep 2022 15:10:19 +0200
Subject: [PATCH] exercise04
---
src/main/java/de/gedoplan/seminar/jpa/exercise/rest/JunctionResource.java | 11 ++++++++++-
src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java | 16 ++++++++++++++++
src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Highway.java | 15 +++++++++++++++
3 files changed, 41 insertions(+), 1 deletions(-)
diff --git a/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Highway.java b/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Highway.java
index 7f3ca9b..ca4db07 100644
--- a/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Highway.java
+++ b/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Highway.java
@@ -1,8 +1,14 @@
package de.gedoplan.seminar.jpa.exercise.domain;
+import java.util.ArrayList;
+import java.util.List;
+
import javax.persistence.Entity;
import javax.persistence.Id;
+import javax.persistence.OneToMany;
import javax.persistence.Table;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@Entity
@Table(name = Highway.TABLE_NAME)
@@ -15,6 +21,10 @@
private String name;
private String origin;
private String destination;
+
+ @JsonIgnoreProperties("highway")
+ @OneToMany(mappedBy = "highway")
+ private List<Junction> junctions = new ArrayList<>();
public Highway() {
}
@@ -57,6 +67,11 @@
public String getDestination() {
return this.destination;
}
+
+
+ public List<Junction> getJunctions() {
+ return junctions;
+ }
@Override
public String toString() {
diff --git a/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java b/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java
index f29ccf7..5a6dbf3 100644
--- a/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java
+++ b/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java
@@ -8,7 +8,10 @@
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.ManyToOne;
import javax.persistence.Table;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
@Entity
@Table(name = Junction.TABLE_NAME)
@@ -26,6 +29,10 @@
private JunctionKind kind;
private String no;
+
+ @JsonIgnoreProperties("junctions")
+ @ManyToOne
+ private Highway highway;
public Junction() {
@@ -68,6 +75,15 @@
public void setNo(String no) {
this.no = no;
}
+
+
+ public Highway getHighway() {
+ return highway;
+ }
+
+ public void setHighway(Highway highway) {
+ this.highway = highway;
+ }
@Override
public int hashCode() {
diff --git a/src/main/java/de/gedoplan/seminar/jpa/exercise/rest/JunctionResource.java b/src/main/java/de/gedoplan/seminar/jpa/exercise/rest/JunctionResource.java
index 7a4c2bf..7a8541b 100644
--- a/src/main/java/de/gedoplan/seminar/jpa/exercise/rest/JunctionResource.java
+++ b/src/main/java/de/gedoplan/seminar/jpa/exercise/rest/JunctionResource.java
@@ -6,6 +6,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
@@ -16,7 +17,9 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.server.ResponseStatusException;
+import de.gedoplan.seminar.jpa.exercise.domain.Highway;
import de.gedoplan.seminar.jpa.exercise.domain.Junction;
+import de.gedoplan.seminar.jpa.exercise.repository.HighwayRepository;
import de.gedoplan.seminar.jpa.exercise.repository.JunctionRepository;
@RestController
@@ -30,6 +33,9 @@
@Autowired
JunctionRepository junctionRepository;
+
+ @Autowired
+ HighwayRepository highwayRepository;
/**
* Exercise JPA_BASICS_02: Insert test data.
@@ -56,8 +62,11 @@
return junction.orElseThrow(() -> new ResponseStatusException(HttpStatus.NOT_FOUND));
}
+ @Transactional
@PutMapping("/{junctionId}/assignToHighway/{highwayId}")
public void assignToHighway(@PathVariable Integer junctionId, @PathVariable Integer highwayId) {
-
+ Highway highwayRef = highwayRepository.getReferenceById(highwayId);
+ Junction junction = junctionRepository.findById(junctionId).orElseThrow();
+ junction.setHighway(highwayRef);
}
}
--
Gitblit v1.7.1