Benki: Clean up the data model mapping some more.

 - Replaces user attribute table mappings with element collections and
   join table mappings.
 - Adds an explicit schema specifier to all join table specifiers.

Change-Id: I0e251e1939faa895155cbe868220d98be2c1e70c
diff --git a/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKey.java b/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKey.java
index 9dd7931..d03597b 100644
--- a/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKey.java
+++ b/src/main/java/eu/mulk/mulkcms2/benki/users/RsaKey.java
@@ -2,13 +2,14 @@
 
 import io.quarkus.hibernate.orm.panache.PanacheEntityBase;
 import java.math.BigInteger;
-import java.util.Collection;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.Id;
 import javax.persistence.IdClass;
-import javax.persistence.OneToMany;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.ManyToOne;
 import javax.persistence.Table;
 
 @Entity
@@ -24,6 +25,11 @@
   @Column(name = "exponent", nullable = false, precision = 0)
   public BigInteger exponent;
 
-  @OneToMany(mappedBy = "rsaKey", fetch = FetchType.LAZY)
-  public Collection<UserRsaKey> users;
+  @ManyToOne(fetch = FetchType.LAZY)
+  @JoinTable(
+      name = "user_rsa_keys",
+      schema = "benki",
+      joinColumns = {@JoinColumn(name = "modulus"), @JoinColumn(name = "exponent")},
+      inverseJoinColumns = @JoinColumn(name = "user"))
+  public User user;
 }