KB66 LazychatMessage: Make LazychatReference into a @ManyToMany association.
Change-Id: I6616c0e9dc6416abcc2e85c38924e5ca7045c062
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatMessage.java b/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatMessage.java
index f52e05a..63f4791 100644
--- a/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatMessage.java
+++ b/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatMessage.java
@@ -5,17 +5,27 @@
import javax.annotation.CheckForNull;
import javax.json.bind.annotation.JsonbTransient;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.OneToMany;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.ManyToMany;
import javax.persistence.Table;
@Entity
@Table(name = "lazychat_messages", schema = "benki")
public class LazychatMessage extends Post<LazychatMessageText> {
- @OneToMany(mappedBy = "referrer", fetch = FetchType.LAZY)
+ @ManyToMany
+ @JoinTable(
+ name = "lazychat_references",
+ schema = "benki",
+ joinColumns = {@JoinColumn(name = "referrer")},
+ inverseJoinColumns = {@JoinColumn(name = "referee")})
@JsonbTransient
- public Collection<LazychatReference> references;
+ public Collection<LazychatMessage> referees;
+
+ @ManyToMany(mappedBy = "referees")
+ @JsonbTransient
+ public Collection<LazychatMessage> referrers;
@CheckForNull
@Override
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatReference.java b/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatReference.java
deleted file mode 100644
index eecc23e..0000000
--- a/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatReference.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package eu.mulk.mulkcms2.benki.lazychat;
-
-import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
-import javax.persistence.Column;
-import javax.persistence.Entity;
-import javax.persistence.FetchType;
-import javax.persistence.Id;
-import javax.persistence.IdClass;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
-import javax.persistence.Table;
-
-@Entity
-@Table(name = "lazychat_references", schema = "benki")
-@IdClass(LazychatReferencePK.class)
-public class LazychatReference extends PanacheEntityBase {
-
- @Id
- @Column(name = "referrer", nullable = false)
- public int referrerId;
-
- @Id
- @Column(name = "referee", nullable = false)
- public int refereeId;
-
- @ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "referrer", referencedColumnName = "id", nullable = false)
- public LazychatMessage referrer;
-
- @ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "referee", referencedColumnName = "id", nullable = false)
- public LazychatMessage referee;
-}
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatReferencePK.java b/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatReferencePK.java
deleted file mode 100644
index 20ff71c..0000000
--- a/src/main/java/eu/mulk/mulkcms2/benki/lazychat/LazychatReferencePK.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package eu.mulk.mulkcms2.benki.lazychat;
-
-import java.io.Serializable;
-import javax.persistence.Column;
-import javax.persistence.Id;
-
-public class LazychatReferencePK implements Serializable {
-
- private int referrerId;
- private int refereeId;
-
- @Column(name = "referrer", nullable = false)
- @Id
- public int getReferrerId() {
- return referrerId;
- }
-
- public void setReferrerId(int referrerId) {
- this.referrerId = referrerId;
- }
-
- @Column(name = "referee", nullable = false)
- @Id
- public int getRefereeId() {
- return refereeId;
- }
-
- public void setRefereeId(int refereeId) {
- this.refereeId = refereeId;
- }
-
- @Override
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- }
- if (o == null || getClass() != o.getClass()) {
- return false;
- }
-
- LazychatReferencePK that = (LazychatReferencePK) o;
-
- if (referrerId != that.referrerId) {
- return false;
- }
- return refereeId == that.refereeId;
- }
-
- @Override
- public int hashCode() {
- int result = referrerId;
- result = 31 * result + refereeId;
- return result;
- }
-}