From 736e3dee4a50d68f8487b92e24cac85624e260b0 Mon Sep 17 00:00:00 2001
From: Hendrik Jungnitsch <hendrik.jungnitsch@gedoplan.de>
Date: Mo, 14 Nov 2022 12:15:46 +0100
Subject: [PATCH] exercise05

---
 src/main/java/de/gedoplan/seminar/jpa/exercise/domain/Junction.java              |   17 +++++++++++++++++
 src/main/java/de/gedoplan/seminar/jpa/exercise/domain/MaintenanceDepartment.java |   43 ++++++++++++++++++++++++++++++++-----------
 2 files changed, 49 insertions(+), 11 deletions(-)

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..3cb3293 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,11 @@
 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 +30,10 @@
 	private JunctionKind kind;
 
 	private String no;
+	
+	@JsonIgnoreProperties("junctions")
+	@ManyToOne
+	private Highway highway;
 
 	public Junction() {
 
@@ -68,6 +76,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/domain/MaintenanceDepartment.java b/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/MaintenanceDepartment.java
index ee57a0f..c2b4b98 100644
--- a/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/MaintenanceDepartment.java
+++ b/src/main/java/de/gedoplan/seminar/jpa/exercise/domain/MaintenanceDepartment.java
@@ -1,6 +1,14 @@
 package de.gedoplan.seminar.jpa.exercise.domain;
 
+import java.util.HashSet;
+import java.util.Set;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
 import javax.persistence.Entity;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.ManyToMany;
 import javax.persistence.Table;
 
 import de.gedoplan.seminar.jpa.exercise.common.GeneratedIntegerIdEntity;
@@ -8,20 +16,33 @@
 @Entity
 @Table(name = MaintenanceDepartment.TABLE_NAME)
 public class MaintenanceDepartment extends GeneratedIntegerIdEntity {
-  public static final String TABLE_NAME = "JPA_MAINTENANCE_DEPT";
-  public static final String TABLE_NAME_HIGHWAYS = "JPA_MAINTENANCE_DEPT_HIGHWAY";
+	public static final String TABLE_NAME = "JPA_MAINTENANCE_DEPT";
+	public static final String TABLE_NAME_HIGHWAYS = "JPA_MAINTENANCE_DEPT_HIGHWAY";
 
-  private String name;
+	private String name;
 
+	@ManyToMany
+	@JoinTable(name = TABLE_NAME_HIGHWAYS, joinColumns = @JoinColumn(name = "MAINTENANCE_DEPT_ID"), inverseJoinColumns = @JoinColumn(name = "HIGHWAY_ID"))
+	private Set<Highway> highways = new HashSet<>();
 
-  protected MaintenanceDepartment() {
-  }
+	protected MaintenanceDepartment() {
+	}
 
-  public MaintenanceDepartment(String name, Highway... highways) {
-    this.name = name;
-  }
+	public MaintenanceDepartment(String name, Highway... highways) {
+		this.name = name;
+		this.highways = Stream.of(highways).collect(Collectors.toSet());
+	}
 
-  public String getName() {
-    return this.name;
-  }
+	public String getName() {
+		return this.name;
+	}
+
+	public Set<Highway> getHighways() {
+		return highways;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
 }

--
Gitblit v1.7.1