From 33fed47475760e711c9811d057a97c18f51883b7 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Mon, 6 Apr 2020 16:12:04 +0200
Subject: [PATCH 01/28] Upload single and multiple into one page

---
 log/logfile.log                               | 139 +++++++++++++++
 .../NTNU/IDATT1002/controllers/Upload.java    |  14 +-
 .../IDATT1002/controllers/UploadedSingle.java | 160 ++++++++++++++++--
 .../NTNU/IDATT1002/uploaded_single.fxml       |  88 ++++------
 4 files changed, 320 insertions(+), 81 deletions(-)
 create mode 100644 log/logfile.log

diff --git a/log/logfile.log b/log/logfile.log
new file mode 100644
index 00000000..265ca9c3
--- /dev/null
+++ b/log/logfile.log
@@ -0,0 +1,139 @@
+INFO  org.hibernate.Version: HHH000412: Hibernate Core {[WORKING]}
+INFO  org.hibernate.cfg.Environment: HHH000205: Loaded properties from resource hibernate.properties: {DB_DIALECT=org.hibernate.dialect.MySQL8Dialect, DB_USER=doadmin, DB_HBM2DDL=update, OVERRIDE_DEFAULT_DB_CONFIG=false, DB_DRIVER=com.mysql.cj.jdbc.Driver, hibernate.bytecode.use_reflection_optimizer=false, DB_URL=jdbc:mysql://db-mysql-lon1-07155-do-user-7212587-0.a.db.ondigitalocean.com:25060/image_application, DB_PASSWORD=s4oxtqu20e8r7tx5}
+INFO  org.hibernate.jpa.internal.util.LogHelper: HHH000204: Processing PersistenceUnitInfo [
+	name: ImageApplication
+	...]
+INFO  org.hibernate.annotations.common.Version: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@453eeb69
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@453eeb69
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@453eeb69
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@5fff88d6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@2b04ddd4
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@5e16f437
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@2a441677
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@2a441677
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@2a441677
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@b27bf63
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@b27bf63
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@b27bf63
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@3312b00
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@3312b00
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@3312b00
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@487468c2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@487468c2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@487468c2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@3cda4945
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@3cda4945
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@3cda4945
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3a0c2379
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3a0c2379
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@3a0c2379
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@40d6e8f6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@40d6e8f6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@40d6e8f6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@774f07d3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@774f07d3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@36ce8cb3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@36ce8cb3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@7870ef46
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@7870ef46
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@537ae267
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@6b56f202
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@3f24641d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@3f24641d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@41f28cac
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@41f28cac
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@43494fda
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@43494fda
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@7eeb6dc0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@7eeb6dc0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@457d707e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@457d707e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@1fc192be
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@1fc192be
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c19528d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c19528d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@44bea630
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@44bea630
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@674221b1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@674221b1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@7efb89b2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@7efb89b2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@255f41fb
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@255f41fb
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@1bda1460
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@1bda1460
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@1bda1460
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@6af045cd
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@74bffdd8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@74bffdd8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@74bffdd8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@618a8c27
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@27bedc3d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@27bedc3d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@181d8f0b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@181d8f0b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@6aea1856
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@6aea1856
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@4c0f0b19
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@4c0f0b19
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@344562b4
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@344562b4
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@2a2e306a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@344c4550
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@344c4550
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@344c4550
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@61c557f9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@61c557f9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@61c557f9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@6b9ac5dc
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@778fde17
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@155c955d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@155c955d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@155c955d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@6f7ac6e3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@6f7ac6e3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@6f7ac6e3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@55bf2af9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@14dcbde7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@2c83ef05
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@2c83ef05
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@3e280407
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@305d2397
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@305d2397
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@12a0fda1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@12a0fda1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@31eaec53
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@b907cd5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@49d3367d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@6a7df667
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@6a7df667
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@131cd58b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@311caba8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@3124c60a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@19e4afc1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@6ca191fb
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@3834262c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@2fb7a3b6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@13118b26
+INFO  org.hibernate.dialect.Dialect: HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
+INFO  org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl: HHH000422: Disabling contextual LOB creation as connection was null
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2bafc22e] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@7feeb887]
+INFO  org.hibernate.validator.internal.util.Version: HV000001: Hibernate Validator null
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2bafc22e] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@7f308ab5]
+INFO  org.hibernate.hql.internal.QueryTranslatorFactoryInitiator: HHH000397: Using ASTQueryTranslatorFactory
+WARN  org.hibernate.orm.connections.pooling: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
+INFO  org.hibernate.orm.connections.pooling: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://mysql.stud.iie.ntnu.no:3306/g_sysutv_14]
+INFO  org.hibernate.orm.connections.pooling: HHH10001001: Connection properties: {password=****, user=g_sysutv_14}
+INFO  org.hibernate.orm.connections.pooling: HHH10001003: Autocommit mode: false
+INFO  org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl: HHH000115: Hibernate connection pool size: 20 (min=1)
+DEBUG org.hibernate.SQL: 
+    select
+        login0_.username as username1_8_0_,
+        login0_.hash as hash2_8_0_,
+        login0_.passwordSalt as password3_8_0_,
+        login0_.user_username as user_use4_8_0_ 
+    from
+        login login0_ 
+    where
+        login0_.username=?
diff --git a/src/main/java/NTNU/IDATT1002/controllers/Upload.java b/src/main/java/NTNU/IDATT1002/controllers/Upload.java
index 10156152..3048f002 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/Upload.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/Upload.java
@@ -134,12 +134,7 @@ public class Upload {
         if(!list.isEmpty()){
             //Store files in DataExchange
             App.ex.setUploadedFiles(list);
-            if (list.size() == 1){
-                switchToUploadedSingle();
-            }
-            else {
-                switchToUploadedMultiple();
-            }
+            switchToUploadedSingle();
         }
     }
 
@@ -193,12 +188,7 @@ public class Upload {
         if(!list.isEmpty()){
             //Stores files to DataExchange
             App.ex.setUploadedFiles(list);
-            if (list.size() == 1){
-                switchToUploadedSingle();
-            }
-            else {
-                switchToUploadedMultiple();
-            }
+            switchToUploadedSingle();
         }
     }
 }
diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
index 9321eba6..0283115c 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
@@ -2,27 +2,40 @@ package NTNU.IDATT1002.controllers;
 
 import NTNU.IDATT1002.App;
 import NTNU.IDATT1002.ApplicationState;
+import NTNU.IDATT1002.models.Album;
+import NTNU.IDATT1002.models.Histogram;
 import NTNU.IDATT1002.models.Tag;
-import NTNU.IDATT1002.repository.TagRepository;
 import NTNU.IDATT1002.service.ImageService;
-import NTNU.IDATT1002.service.TagService;
+import NTNU.IDATT1002.utils.ImageUtil;
+import NTNU.IDATT1002.utils.MetaDataExtractor;
 import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
 import javafx.fxml.Initializable;
+import javafx.geometry.Insets;
 import javafx.scene.control.Button;
 import javafx.scene.control.TextArea;
 import javafx.scene.control.TextField;
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
 import javafx.scene.input.MouseEvent;
+import javafx.scene.layout.HBox;
+import javafx.scene.layout.VBox;
+import javafx.scene.text.Font;
+import javafx.scene.text.FontWeight;
+import javafx.scene.text.Text;
+import javafx.stage.FileChooser;
 
 import javax.persistence.EntityManager;
 import java.io.File;
 import java.io.IOException;
+import java.net.MalformedURLException;
 import java.net.URL;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.ResourceBundle;
+import java.util.stream.Collectors;
 
 /**
  * Controls the buttons and changeable elements on upload_single.fxml,
@@ -32,6 +45,7 @@ import java.util.ResourceBundle;
  */
 public class UploadedSingle implements Initializable {
 
+  public VBox uploadContainer;
   ImageService imageService;
 
   public ImageView tbar_logo;
@@ -41,12 +55,6 @@ public class UploadedSingle implements Initializable {
   public Button tbar_map;
   public Button tbar_upload;
 
-  public TextField photo_title;
-  public TextField photo_tag;
-  public TextArea photo_desc;
-  public ImageView photo_image;
-
-  public Button acceptBtn;
   public Button tbar_albums;
 
 
@@ -58,13 +66,119 @@ public class UploadedSingle implements Initializable {
    * @param resources
    */
   public void initialize(URL location, ResourceBundle resources) {
-    photo_image.setImage(new Image(App.ex.getUploadedFiles()
-            .get(0)
-            .toURI()
-            .toString()));
+    List<File> files = App.ex.getUploadedFiles();
+    int maxPerPage = Math.min(files.size(), 50);
+    for (int i = 0; i < maxPerPage; i ++){
+      //A container for image and text
+      HBox imageContainer = new HBox();
+      imageContainer.setPrefWidth(1520);
+      imageContainer.setPrefHeight(300);
+
+      insertImageToContainer(files.get(i), imageContainer);
+      insertImageTextToContainer(files.get(i), imageContainer);
+      uploadContainer.getChildren().add(imageContainer);
+    }
+  }
+
+  /**
+   * Format and insert the first image in the given album to the given container.
+   *
+   * @param file the chosen file
+   * @param imageContainer a container for the image
+   */
+  private void insertImageToContainer(File file, HBox imageContainer){
+    ImageView imageView = new ImageView();
+    imageView.setFitHeight(300.0);
+    imageView.setFitWidth(533.0);
+    imageView.setPickOnBounds(true);
+    imageView.setPreserveRatio(true);
+    imageView.setImage(new Image(file.toURI().toString()));
+
+    imageContainer.getChildren().add(imageView);
+  }
+
+  /**
+   * Att text elements from album to the container
+   *
+   * @param file the album to display
+   * @param imageContainer the container for each separate album
+   */
+  private void insertImageTextToContainer(File file, HBox imageContainer) {
+    //Creates a vbox so that nodes is aligned in a column
+    VBox textContainer = new VBox();
+    textContainer.setSpacing(5);
+    textContainer.setPadding(new Insets(0, 0, 0, 25));
+    textContainer.setPrefHeight(300);
+    textContainer.setPrefWidth(987);
+
+    insertImageTitle(file, textContainer);
+    insertImageTags(file, textContainer);
+    insertImageMetadata(file, textContainer);
 
-    EntityManager entityManager = App.ex.getEntityManager();
-    imageService = new ImageService(entityManager);
+    imageContainer.getChildren().add(textContainer);
+  }
+
+  /**
+   * Insert title of the given album to the given container
+   * It is clickable, and switches to View Album page of that album
+   *
+   * @param file
+   * @param textContainer container for text elements of an album
+   */
+  private void insertImageTitle(File file, VBox textContainer) {
+    HBox titleContainer = new HBox();
+
+    Text titleLabel = new Text("Title: ");
+    titleLabel.setFont(Font.font("System", FontWeight.BOLD, 24));
+
+    TextField title = new TextField();
+    title.setFont(Font.font("System",24));
+
+    titleContainer.getChildren().addAll(titleLabel, title);
+
+
+    textContainer.getChildren().add(titleContainer);
+  }
+
+  /**
+   * Insert tags of the given album to the given container
+   *
+   * @param file
+   * @param textContainer container for text elements of an image
+   */
+  private void insertImageTags(File file, VBox textContainer) {
+    HBox tagContainer = new HBox();
+
+    Text tagLabel = new Text("Tags: ");
+    tagLabel.setFont(Font.font("System", FontWeight.BOLD, 24));
+
+    TextField tags = new TextField();
+    tags.setFont(Font.font("System",24));
+
+    tagContainer.getChildren().addAll(tagLabel, tags);
+
+    textContainer.getChildren().add(tagContainer);
+  }
+
+
+  /**
+   * Insert description of the given album to the given container
+   *
+   * @param file
+   * @param textContainer container for text elements of an image
+   */
+  private void insertImageMetadata(File file, VBox textContainer) {
+    Text metadataLabel = new Text("Metadata: ");
+    metadataLabel.setFont(Font.font("System", FontWeight.BOLD, 16));
+
+    MetaDataExtractor metaDataExtractor = new MetaDataExtractor();
+    Histogram histogram = metaDataExtractor.getHistogram(file);
+    TextArea metadata = new TextArea(histogram.getData());
+    metadata.setPrefWidth(400);
+    metadata.setFont(Font.font("System",16));
+
+
+    textContainer.getChildren().addAll(metadataLabel, metadata);
   }
 
   /**
@@ -135,18 +249,28 @@ public class UploadedSingle implements Initializable {
    * Method for uploading image to database with tags
    * Image itself is not stored but URL is
    *
-   * @author Lars ØStby
    * @param actionEvent
    * @throws IOException
    */
 
   public void uploadSingle(ActionEvent actionEvent) throws IOException {
     List<File> list = App.ex.getUploadedFiles();
-    File file = list.get(0);
-    List<Tag> tags = TagService.getTagsFromString(photo_tag.getText());
-    imageService.createImage(ApplicationState.getCurrentUser(), file, tags);
+    File fil = list.get(0);
+    ArrayList<Tag> tags = new ArrayList<>();
+    imageService.createImage(ApplicationState.getCurrentUser(), fil, tags);
+
     App.setRoot("main");
   }
 
+  /***
+   * Method for splitting the tag textField into tags in a list
+   * @param photo_tag
+   * @return list of string
+   */
+  public List<String> tagStringSplit(TextField photo_tag) {
+    String tagTekst = photo_tag.getText();
+    return Arrays.asList(tagTekst.split("(?=#)"));
 
+
+  }
 }
diff --git a/src/main/resources/NTNU/IDATT1002/uploaded_single.fxml b/src/main/resources/NTNU/IDATT1002/uploaded_single.fxml
index b325c316..18a537e8 100644
--- a/src/main/resources/NTNU/IDATT1002/uploaded_single.fxml
+++ b/src/main/resources/NTNU/IDATT1002/uploaded_single.fxml
@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
+<?import javafx.geometry.Insets?>
 <?import javafx.scene.control.Button?>
-<?import javafx.scene.control.TextArea?>
+<?import javafx.scene.control.ScrollPane?>
 <?import javafx.scene.control.TextField?>
 <?import javafx.scene.image.Image?>
 <?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.BorderPane?>
 <?import javafx.scene.layout.HBox?>
 <?import javafx.scene.layout.Pane?>
 <?import javafx.scene.layout.VBox?>
-<?import javafx.scene.text.Font?>
-<?import javafx.scene.text.Text?>
 
 <VBox alignment="CENTER" prefHeight="1080.0" prefWidth="1920.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="NTNU.IDATT1002.controllers.UploadedSingle">
    <children>
@@ -30,55 +30,41 @@
             <Button fx:id="tbar_upload" mnemonicParsing="false" onAction="#switchToUpload" prefHeight="25.0" prefWidth="114.0" text="UPLOAD" />
          </children>
       </HBox>
-      <HBox alignment="CENTER" prefHeight="982.0" prefWidth="1920.0" VBox.vgrow="ALWAYS">
+      <HBox alignment="CENTER" prefHeight="982.0" prefWidth="1920.0">
          <children>
-            <VBox alignment="CENTER" prefHeight="981.0" prefWidth="976.0" style="-fx-background-color: #444444;" HBox.hgrow="ALWAYS">
-               <children>
-                  <ImageView fx:id="photo_image" fitHeight="506.0" fitWidth="900.0" pickOnBounds="true" preserveRatio="true">
-                     <image>
-                        <Image url="@../../Images/placeholder-1920x1080.png" />
-                     </image>
-                  </ImageView>
-               </children>
-            </VBox>
-            <VBox alignment="CENTER" prefHeight="981.0" prefWidth="947.0" style="-fx-background-color: #666666;" HBox.hgrow="ALWAYS">
-               <children>
-                  <VBox alignment="CENTER" maxWidth="799.0" prefHeight="981.0" prefWidth="799.0" spacing="10.0">
-                     <children>
-                        <Text strokeType="OUTSIDE" strokeWidth="0.0" text="TITLE:">
-                           <font>
-                              <Font name="System Bold" size="36.0" />
-                           </font>
-                        </Text>
-                        <TextField fx:id="photo_title" prefHeight="32.0" prefWidth="689.0" promptText="Insert title here" />
-                        <Text strokeType="OUTSIDE" strokeWidth="0.0" text="TAGS:">
-                           <font>
-                              <Font name="System Bold" size="24.0" />
-                           </font>
-                        </Text>
-                        <TextField fx:id="photo_tag" prefHeight="32.0" prefWidth="728.0" promptText="#Blue, #water, #summer, etc..." />
-                        <Text strokeType="OUTSIDE" strokeWidth="0.0" text="DESCRIPTION:">
-                           <font>
-                              <Font name="System Bold" size="24.0" />
-                           </font>
-                        </Text>
-                        <TextArea fx:id="photo_desc" prefHeight="147.0" prefWidth="822.0" promptText="Insert description here" />
-                        <Text strokeType="OUTSIDE" strokeWidth="0.0" text="METADATA:">
-                           <font>
-                              <Font name="System Bold" size="24.0" />
-                           </font>
-                        </Text>
-                        <Pane prefHeight="364.0" prefWidth="822.0" style="-fx-background-color: #ffffff;" />
-                        <Button fx:id="acceptBtn" mnemonicParsing="false" onAction="#uploadSingle" text="ACCEPT">
-                           <font>
-                              <Font size="18.0" />
-                           </font>
-                        </Button>
-                     </children>
-                  </VBox>
-               </children>
-            </VBox>
+            <ScrollPane hbarPolicy="NEVER" prefHeight="1080.0" prefWidth="1920.0" HBox.hgrow="ALWAYS">
+               <content>
+                  <BorderPane>
+                     <right>
+                        <Pane minHeight="300.0" prefWidth="200.0" style="-fx-background-color: #6d6d6d;" BorderPane.alignment="CENTER" />
+                     </right>
+                     <bottom>
+                        <Pane prefHeight="250.0" style="-fx-background-color: #6d6d6d;" BorderPane.alignment="CENTER">
+                           <children>
+                              <HBox alignment="CENTER" layoutY="-2.0" prefHeight="84.0" prefWidth="1920.0" spacing="20.0" />
+                           </children>
+                        </Pane>
+                     </bottom>
+                     <center>
+                        <VBox fx:id="uploadContainer" maxHeight="1.7976931348623157E308" maxWidth="Infinity" minHeight="980.0" spacing="10.0" style="-fx-background-color: #555555;" BorderPane.alignment="CENTER" />
+                     </center>
+                     <top>
+                        <VBox prefHeight="250.0" style="-fx-background-color: #6d6d6d;" BorderPane.alignment="CENTER">
+                           <opaqueInsets>
+                              <Insets />
+                           </opaqueInsets>
+                           <padding>
+                              <Insets top="20.0" />
+                           </padding>
+                        </VBox>
+                     </top>
+                     <left>
+                        <Pane minHeight="300.0" prefWidth="200.0" style="-fx-background-color: #6d6d6d;" BorderPane.alignment="CENTER" />
+                     </left>
+                  </BorderPane>
+               </content>
+            </ScrollPane>
          </children>
       </HBox>
    </children>
-</VBox>
+</VBox>
\ No newline at end of file
-- 
GitLab


From 0517679f10354833358a205dcbfe937c02318a62 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Mon, 6 Apr 2020 18:24:17 +0200
Subject: [PATCH 02/28] Dropdown with album id that can be added to image

---
 pom.xml                                       |  7 +++
 .../IDATT1002/controllers/UploadedSingle.java | 52 ++++++++++++++++++-
 2 files changed, 57 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index da7e76c3..f0ac012d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -82,6 +82,13 @@
             <type>pom</type>
         </dependency>
 
+        <!-- Controlsfx https://mvnrepository.com/artifact/org.controlsfx/controlsfx -->
+        <dependency>
+            <groupId>org.controlsfx</groupId>
+            <artifactId>controlsfx</artifactId>
+            <version>11.0.1</version>
+        </dependency>
+
         <!-- MySQL Driver -->
         <dependency>
             <groupId>mysql</groupId>
diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
index 0283115c..9cdb0f0f 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
@@ -5,14 +5,20 @@ import NTNU.IDATT1002.ApplicationState;
 import NTNU.IDATT1002.models.Album;
 import NTNU.IDATT1002.models.Histogram;
 import NTNU.IDATT1002.models.Tag;
+import NTNU.IDATT1002.service.AlbumService;
 import NTNU.IDATT1002.service.ImageService;
 import NTNU.IDATT1002.utils.ImageUtil;
 import NTNU.IDATT1002.utils.MetaDataExtractor;
+import javafx.collections.FXCollections;
+import javafx.collections.ListChangeListener;
+import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.fxml.Initializable;
 import javafx.geometry.Insets;
+import javafx.geometry.Pos;
 import javafx.scene.control.Button;
+import javafx.scene.control.ChoiceBox;
 import javafx.scene.control.TextArea;
 import javafx.scene.control.TextField;
 import javafx.scene.image.Image;
@@ -25,6 +31,8 @@ import javafx.scene.text.FontWeight;
 import javafx.scene.text.Text;
 import javafx.stage.FileChooser;
 
+import org.controlsfx.control.CheckComboBox;
+
 import javax.persistence.EntityManager;
 import java.io.File;
 import java.io.IOException;
@@ -57,7 +65,12 @@ public class UploadedSingle implements Initializable {
 
   public Button tbar_albums;
 
+  private AlbumService albumService;
 
+  public UploadedSingle(){
+    EntityManager entityManager = App.ex.getEntityManager();
+    albumService = new AlbumService(entityManager);
+  }
   /**
    * Method that runs when the controller is loaded
    * Sets the image url on the page to be the uploaded images url
@@ -94,7 +107,13 @@ public class UploadedSingle implements Initializable {
     imageView.setPreserveRatio(true);
     imageView.setImage(new Image(file.toURI().toString()));
 
-    imageContainer.getChildren().add(imageView);
+    HBox container = new HBox();
+    container.setPrefWidth(533);
+    container.setPrefHeight(300);
+    container.setAlignment(Pos.TOP_CENTER);
+    container.getChildren().add(imageView);
+
+    imageContainer.getChildren().add(container);
   }
 
   /**
@@ -114,6 +133,7 @@ public class UploadedSingle implements Initializable {
     insertImageTitle(file, textContainer);
     insertImageTags(file, textContainer);
     insertImageMetadata(file, textContainer);
+    insertCheckedChoiceBox(textContainer);
 
     imageContainer.getChildren().add(textContainer);
   }
@@ -174,13 +194,41 @@ public class UploadedSingle implements Initializable {
     MetaDataExtractor metaDataExtractor = new MetaDataExtractor();
     Histogram histogram = metaDataExtractor.getHistogram(file);
     TextArea metadata = new TextArea(histogram.getData());
-    metadata.setPrefWidth(400);
+
+    metadata.setEditable(false);
+    metadata.setPrefWidth(500);
     metadata.setFont(Font.font("System",16));
 
 
     textContainer.getChildren().addAll(metadataLabel, metadata);
   }
 
+  /**
+   * Method that generates a dropdown with checkable albums
+   * The image is added to the following albums
+   * @param textContainer container for text elements of an image
+   */
+  private void insertCheckedChoiceBox(VBox textContainer){
+    //TODO: Now the dropdown displays album id, since this is unique for all albums. Make it possible to set title as Value but get
+    ObservableList<String> options = FXCollections.observableArrayList();
+    albumService.getAllAlbums().stream()
+            //All the users albums
+            .filter(album -> album.getUser() == ApplicationState.getCurrentUser())
+            .forEach(album -> {
+              options.add(album.getId().toString());
+            });
+    CheckComboBox<String> checkComboBox = new CheckComboBox<>(options);
+    checkComboBox.setTitle("Add to albums");
+    /*
+    checkComboBox.getCheckModel().getCheckedItems().addListener(new ListChangeListener<String>() {
+      public void onChanged(ListChangeListener.Change<? extends String> c) {
+        checkComboBox.getCheckModel().getCheckedItems();
+      }
+    });
+     */
+    textContainer.getChildren().add(checkComboBox);
+  }
+
   /**
    * Method that changes stage to Main page
    *
-- 
GitLab


From bea2f3b940fecaf0424c1f0c11adea8c4e1b37ae Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 00:50:26 +0200
Subject: [PATCH 03/28] Tag to image upload

---
 .../IDATT1002/controllers/UploadedSingle.java | 97 ++++++++++++++-----
 1 file changed, 71 insertions(+), 26 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
index 9cdb0f0f..388d731c 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
@@ -3,10 +3,10 @@ package NTNU.IDATT1002.controllers;
 import NTNU.IDATT1002.App;
 import NTNU.IDATT1002.ApplicationState;
 import NTNU.IDATT1002.models.Album;
-import NTNU.IDATT1002.models.Histogram;
 import NTNU.IDATT1002.models.Tag;
 import NTNU.IDATT1002.service.AlbumService;
 import NTNU.IDATT1002.service.ImageService;
+import NTNU.IDATT1002.service.TagService;
 import NTNU.IDATT1002.utils.ImageUtil;
 import NTNU.IDATT1002.utils.MetaDataExtractor;
 import javafx.collections.FXCollections;
@@ -17,10 +17,9 @@ import javafx.event.EventHandler;
 import javafx.fxml.Initializable;
 import javafx.geometry.Insets;
 import javafx.geometry.Pos;
-import javafx.scene.control.Button;
-import javafx.scene.control.ChoiceBox;
-import javafx.scene.control.TextArea;
-import javafx.scene.control.TextField;
+import javafx.scene.Node;
+import javafx.scene.Parent;
+import javafx.scene.control.*;
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
 import javafx.scene.input.MouseEvent;
@@ -32,6 +31,7 @@ import javafx.scene.text.Text;
 import javafx.stage.FileChooser;
 
 import org.controlsfx.control.CheckComboBox;
+import org.hibernate.boot.jaxb.internal.stax.HbmEventReader;
 
 import javax.persistence.EntityManager;
 import java.io.File;
@@ -39,10 +39,7 @@ import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.nio.file.Files;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.ResourceBundle;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -66,10 +63,12 @@ public class UploadedSingle implements Initializable {
   public Button tbar_albums;
 
   private AlbumService albumService;
+  private TagService tagService;
 
   public UploadedSingle(){
     EntityManager entityManager = App.ex.getEntityManager();
     albumService = new AlbumService(entityManager);
+    tagService = new TagService(entityManager);
   }
   /**
    * Method that runs when the controller is loaded
@@ -91,6 +90,18 @@ public class UploadedSingle implements Initializable {
       insertImageTextToContainer(files.get(i), imageContainer);
       uploadContainer.getChildren().add(imageContainer);
     }
+    if (uploadContainer.getChildren().size() > 0){
+      Button accept = new Button("Accept");
+      accept.setOnAction(actionEvent -> {
+        try {
+          upload();
+        } catch (IOException e) {
+          e.printStackTrace();
+        }
+      });
+      uploadContainer.setAlignment(Pos.TOP_CENTER);
+      uploadContainer.getChildren().add(accept);
+    }
   }
 
   /**
@@ -152,11 +163,11 @@ public class UploadedSingle implements Initializable {
     titleLabel.setFont(Font.font("System", FontWeight.BOLD, 24));
 
     TextField title = new TextField();
+    title.setId("title");
     title.setFont(Font.font("System",24));
 
     titleContainer.getChildren().addAll(titleLabel, title);
 
-
     textContainer.getChildren().add(titleContainer);
   }
 
@@ -173,6 +184,7 @@ public class UploadedSingle implements Initializable {
     tagLabel.setFont(Font.font("System", FontWeight.BOLD, 24));
 
     TextField tags = new TextField();
+    tags.setId("tags");
     tags.setFont(Font.font("System",24));
 
     tagContainer.getChildren().addAll(tagLabel, tags);
@@ -192,8 +204,8 @@ public class UploadedSingle implements Initializable {
     metadataLabel.setFont(Font.font("System", FontWeight.BOLD, 16));
 
     MetaDataExtractor metaDataExtractor = new MetaDataExtractor();
-    Histogram histogram = metaDataExtractor.getHistogram(file);
-    TextArea metadata = new TextArea(histogram.getData());
+    //Histogram histogram = metaDataExtractor.getHistogram(file);
+    TextArea metadata = new TextArea("histogram.getData()");
 
     metadata.setEditable(false);
     metadata.setPrefWidth(500);
@@ -205,19 +217,19 @@ public class UploadedSingle implements Initializable {
 
   /**
    * Method that generates a dropdown with checkable albums
-   * The image is added to the following albums
+   * The image is added to the following albums after it is created
    * @param textContainer container for text elements of an image
    */
   private void insertCheckedChoiceBox(VBox textContainer){
-    //TODO: Now the dropdown displays album id, since this is unique for all albums. Make it possible to set title as Value but get
-    ObservableList<String> options = FXCollections.observableArrayList();
+    ObservableList<Album> options = FXCollections.observableArrayList();
     albumService.getAllAlbums().stream()
-            //All the users albums
+            //Filters the users albums
             .filter(album -> album.getUser() == ApplicationState.getCurrentUser())
-            .forEach(album -> {
-              options.add(album.getId().toString());
-            });
-    CheckComboBox<String> checkComboBox = new CheckComboBox<>(options);
+            //Adds a checkbox for each album
+            //TODO: make toString in album a bit more userfriendly for this dropdown
+            .forEach(options::add);
+    CheckComboBox<Album> checkComboBox = new CheckComboBox<>(options);
+    checkComboBox.setId("checkbox");
     checkComboBox.setTitle("Add to albums");
     /*
     checkComboBox.getCheckModel().getCheckedItems().addListener(new ListChangeListener<String>() {
@@ -297,15 +309,36 @@ public class UploadedSingle implements Initializable {
    * Method for uploading image to database with tags
    * Image itself is not stored but URL is
    *
-   * @param actionEvent
    * @throws IOException
    */
 
-  public void uploadSingle(ActionEvent actionEvent) throws IOException {
-    List<File> list = App.ex.getUploadedFiles();
-    File fil = list.get(0);
-    ArrayList<Tag> tags = new ArrayList<>();
-    imageService.createImage(ApplicationState.getCurrentUser(), fil, tags);
+  public void upload() throws IOException {
+    List<Node> imageContainers = uploadContainer.getChildren().stream()
+            .filter(node -> node instanceof HBox)
+            .collect(Collectors.toList());
+
+    for(int i = 0; i < imageContainers.size(); i++){
+      List<Node> nodes = getAllNodes((Parent) imageContainers.get(i));
+      List<Node> childNodes = nodes.stream().filter(n -> n.getId() != null && (n.getId().equals("title") || n.getId().equals("tags") || n.getId().equals("checkbox"))).collect(Collectors.toList());
+      Node title = childNodes.stream().filter(textField -> textField.getId().equals("title")).collect(Collectors.toList()).get(0);
+      Node tags = childNodes.stream().filter(textField -> textField.getId().equals("tags")).collect(Collectors.toList()).get(0);
+      Node comboBox = childNodes.stream().filter(textField -> textField.getId().equals("checkbox")).collect(Collectors.toList()).get(0);
+
+      ObservableList<Album> chosenAlbums = ((CheckComboBox<Album>) comboBox).getItems();
+      String tagsString = ((TextField) tags).getText();
+      List<Tag> tagList = TagService.getTagsFromString(tagsString);
+      List<Tag> createdTags = tagService.getOrCreateTags(tagList);
+      System.out.println(ApplicationState.getCurrentUser().getFirstName());
+      System.out.println(App.ex.getUploadedFiles().get(0).toURI().toString());
+      System.out.println(createdTags);
+      //Todo: make title apply to image
+      Optional<NTNU.IDATT1002.models.Image> createdImage = imageService.createImage(ApplicationState.getCurrentUser(), App.ex.getUploadedFiles().get(i), createdTags);
+      createdImage.ifPresent(image -> {
+        for (Album album : chosenAlbums) {
+          album.addImage(image);
+        }
+      });
+    }
 
     App.setRoot("main");
   }
@@ -318,7 +351,19 @@ public class UploadedSingle implements Initializable {
   public List<String> tagStringSplit(TextField photo_tag) {
     String tagTekst = photo_tag.getText();
     return Arrays.asList(tagTekst.split("(?=#)"));
+  }
 
+  public static ArrayList<Node> getAllNodes(Parent root) {
+    ArrayList<Node> nodes = new ArrayList<Node>();
+    addAllDescendents(root, nodes);
+    return nodes;
+  }
 
+  private static void addAllDescendents(Parent parent, ArrayList<Node> nodes) {
+    for (Node node : parent.getChildrenUnmodifiable()) {
+      nodes.add(node);
+      if (node instanceof Parent)
+        addAllDescendents((Parent)node, nodes);
+    }
   }
 }
-- 
GitLab


From 674c46e7251bcf2b7218d3668b9e9779769952ed Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 00:51:10 +0200
Subject: [PATCH 04/28] log

---
 log/logfile.log | 1344 +++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 1230 insertions(+), 114 deletions(-)

diff --git a/log/logfile.log b/log/logfile.log
index 265ca9c3..f9e2b28f 100644
--- a/log/logfile.log
+++ b/log/logfile.log
@@ -4,123 +4,123 @@ INFO  org.hibernate.jpa.internal.util.LogHelper: HHH000204: Processing Persisten
 	name: ImageApplication
 	...]
 INFO  org.hibernate.annotations.common.Version: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@453eeb69
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@453eeb69
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@453eeb69
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@5fff88d6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@2b04ddd4
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@5e16f437
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@2a441677
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@2a441677
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@2a441677
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@b27bf63
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@b27bf63
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@b27bf63
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@3312b00
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@3312b00
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@3312b00
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@487468c2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@487468c2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@487468c2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@3cda4945
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@3cda4945
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@3cda4945
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3a0c2379
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3a0c2379
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@3a0c2379
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@40d6e8f6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@40d6e8f6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@40d6e8f6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@774f07d3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@774f07d3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@36ce8cb3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@36ce8cb3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@7870ef46
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@7870ef46
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@537ae267
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@6b56f202
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@3f24641d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@3f24641d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@41f28cac
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@41f28cac
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@43494fda
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@43494fda
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@7eeb6dc0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@7eeb6dc0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@457d707e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@457d707e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@1fc192be
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@1fc192be
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c19528d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c19528d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@44bea630
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@44bea630
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@674221b1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@674221b1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@7efb89b2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@7efb89b2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@255f41fb
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@255f41fb
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@1bda1460
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@1bda1460
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@1bda1460
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@6af045cd
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@74bffdd8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@74bffdd8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@74bffdd8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@618a8c27
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@27bedc3d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@27bedc3d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@181d8f0b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@181d8f0b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@6aea1856
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@6aea1856
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@4c0f0b19
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@4c0f0b19
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@344562b4
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@344562b4
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@2a2e306a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@344c4550
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@344c4550
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@344c4550
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@61c557f9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@61c557f9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@61c557f9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@6b9ac5dc
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@778fde17
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@155c955d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@155c955d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@155c955d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@6f7ac6e3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@6f7ac6e3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@6f7ac6e3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@55bf2af9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@14dcbde7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@2c83ef05
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@2c83ef05
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@3e280407
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@305d2397
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@305d2397
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@12a0fda1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@12a0fda1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@31eaec53
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@b907cd5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@49d3367d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@6a7df667
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@6a7df667
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@131cd58b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@311caba8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@3124c60a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@19e4afc1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@6ca191fb
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@3834262c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@2fb7a3b6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@13118b26
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@2a75ba5a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@2a75ba5a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@2a75ba5a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@31729b23
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@2fb1145a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@5670b664
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@5105347e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@5105347e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@5105347e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@7c4d6559
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@7c4d6559
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@7c4d6559
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@57566878
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@57566878
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@57566878
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@513a6e97
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@513a6e97
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@513a6e97
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@707c8416
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@707c8416
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@707c8416
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@787d1168
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@787d1168
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@787d1168
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@5c6f58f5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@5c6f58f5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@5c6f58f5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@62e64dae
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@62e64dae
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@4c0e55a2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@4c0e55a2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@3bd9f889
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@3bd9f889
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@2aa40b2a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@2da928b8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@751905a9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@751905a9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@1f9abd58
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@1f9abd58
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@4b8c3460
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@4b8c3460
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@551e9b6b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@551e9b6b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@3b8845df
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@3b8845df
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@2bb61b88
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@2bb61b88
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@28df6e7c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@28df6e7c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@3920c559
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@3920c559
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@5e28a17
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@5e28a17
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@5418aa84
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@5418aa84
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@56cc0a6b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@56cc0a6b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@611f0697
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@611f0697
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@611f0697
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@3cf01228
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@6ae2ea93
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@6ae2ea93
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@6ae2ea93
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@708e7d15
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@54a45367
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@54a45367
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@41fc827c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@41fc827c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@3b767aec
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@3b767aec
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@6e868151
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@6e868151
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@73997c00
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@73997c00
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@33a08a82
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@340b1ac1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@340b1ac1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@340b1ac1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@2a95d89c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@2a95d89c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@2a95d89c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@2e518bd6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@62cc793d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@1f0dd0bd
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@1f0dd0bd
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@1f0dd0bd
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@4282b361
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@4282b361
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@4282b361
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@30d332d0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@405cee97
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@215c37ae
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@215c37ae
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@3ec0a319
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@355048c0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@355048c0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@54297225
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@54297225
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@7a02bcdd
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@631bab75
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@13564705
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@f90833f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@f90833f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@3d7c86ff
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@5eb999a5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@768f33d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@42c04cf6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@1bd2612f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@934b741
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@49055c41
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@9621e6b
 INFO  org.hibernate.dialect.Dialect: HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
 INFO  org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl: HHH000422: Disabling contextual LOB creation as connection was null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2bafc22e] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@7feeb887]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6fc47d42] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@3fae55f]
 INFO  org.hibernate.validator.internal.util.Version: HV000001: Hibernate Validator null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2bafc22e] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@7f308ab5]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6fc47d42] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@55444016]
 INFO  org.hibernate.hql.internal.QueryTranslatorFactoryInitiator: HHH000397: Using ASTQueryTranslatorFactory
 WARN  org.hibernate.orm.connections.pooling: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
 INFO  org.hibernate.orm.connections.pooling: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://mysql.stud.iie.ntnu.no:3306/g_sysutv_14]
@@ -137,3 +137,1119 @@ DEBUG org.hibernate.SQL:
         login login0_ 
     where
         login0_.username=?
+DEBUG org.hibernate.SQL: 
+    /* 
+from
+    NTNU.IDATT1002.models.Album */ select
+        album0_.id as id1_0_,
+        album0_.createdAt as createdA2_0_,
+        album0_.description as descript3_0_,
+        album0_.title as title4_0_,
+        album0_.updatedAt as updatedA5_0_,
+        album0_.user_username as user_use6_0_ 
+    from
+        album album0_
+DEBUG org.hibernate.SQL: 
+    select
+        user0_.username as username1_11_0_,
+        user0_.birthDate as birthDat2_11_0_,
+        user0_.callingCode as callingC3_11_0_,
+        user0_.email as email4_11_0_,
+        user0_.firstName as firstNam5_11_0_,
+        user0_.isActive as isActive6_11_0_,
+        user0_.isAdmin as isAdmin7_11_0_,
+        user0_.lastName as lastName8_11_0_,
+        user0_.phoneNumber as phoneNum9_11_0_ 
+    from
+        user user0_ 
+    where
+        user0_.username=?
+DEBUG org.hibernate.SQL: 
+    /* 
+from
+    NTNU.IDATT1002.models.Album */ select
+        album0_.id as id1_0_,
+        album0_.createdAt as createdA2_0_,
+        album0_.description as descript3_0_,
+        album0_.title as title4_0_,
+        album0_.updatedAt as updatedA5_0_,
+        album0_.user_username as user_use6_0_ 
+    from
+        album album0_
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    /* Tag.findByName */ select
+        tag0_.tagId as tagId1_10_,
+        tag0_.name as name2_10_ 
+    from
+        tag tag0_ 
+    where
+        tag0_.name=?
+DEBUG org.hibernate.SQL: 
+    /* Tag.findByName */ select
+        tag0_.tagId as tagId1_10_,
+        tag0_.name as name2_10_ 
+    from
+        tag tag0_ 
+    where
+        tag0_.name=?
+DEBUG org.hibernate.SQL: 
+    /* insert NTNU.IDATT1002.models.Tag
+        */ insert 
+        into
+            tag
+            (name) 
+        values
+            (?)
+DEBUG org.hibernate.SQL: 
+    select
+        last_insert_id()
-- 
GitLab


From 3f90c1a38d2d264ec2da111c91b3742d8b49dc69 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Mon, 6 Apr 2020 16:12:04 +0200
Subject: [PATCH 05/28] Upload single and multiple into one page

---
 log/logfile.log                               | 139 +++++++++++++++
 .../NTNU/IDATT1002/controllers/Upload.java    |  14 +-
 .../IDATT1002/controllers/UploadedSingle.java | 160 ++++++++++++++++--
 .../NTNU/IDATT1002/uploaded_single.fxml       |  88 ++++------
 4 files changed, 320 insertions(+), 81 deletions(-)
 create mode 100644 log/logfile.log

diff --git a/log/logfile.log b/log/logfile.log
new file mode 100644
index 00000000..265ca9c3
--- /dev/null
+++ b/log/logfile.log
@@ -0,0 +1,139 @@
+INFO  org.hibernate.Version: HHH000412: Hibernate Core {[WORKING]}
+INFO  org.hibernate.cfg.Environment: HHH000205: Loaded properties from resource hibernate.properties: {DB_DIALECT=org.hibernate.dialect.MySQL8Dialect, DB_USER=doadmin, DB_HBM2DDL=update, OVERRIDE_DEFAULT_DB_CONFIG=false, DB_DRIVER=com.mysql.cj.jdbc.Driver, hibernate.bytecode.use_reflection_optimizer=false, DB_URL=jdbc:mysql://db-mysql-lon1-07155-do-user-7212587-0.a.db.ondigitalocean.com:25060/image_application, DB_PASSWORD=s4oxtqu20e8r7tx5}
+INFO  org.hibernate.jpa.internal.util.LogHelper: HHH000204: Processing PersistenceUnitInfo [
+	name: ImageApplication
+	...]
+INFO  org.hibernate.annotations.common.Version: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@453eeb69
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@453eeb69
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@453eeb69
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@5fff88d6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@2b04ddd4
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@5e16f437
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@2a441677
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@2a441677
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@2a441677
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@b27bf63
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@b27bf63
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@b27bf63
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@3312b00
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@3312b00
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@3312b00
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@487468c2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@487468c2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@487468c2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@3cda4945
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@3cda4945
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@3cda4945
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3a0c2379
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3a0c2379
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@3a0c2379
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@40d6e8f6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@40d6e8f6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@40d6e8f6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@774f07d3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@774f07d3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@36ce8cb3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@36ce8cb3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@7870ef46
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@7870ef46
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@537ae267
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@6b56f202
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@3f24641d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@3f24641d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@41f28cac
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@41f28cac
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@43494fda
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@43494fda
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@7eeb6dc0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@7eeb6dc0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@457d707e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@457d707e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@1fc192be
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@1fc192be
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c19528d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c19528d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@44bea630
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@44bea630
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@674221b1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@674221b1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@7efb89b2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@7efb89b2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@255f41fb
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@255f41fb
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@1bda1460
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@1bda1460
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@1bda1460
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@6af045cd
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@74bffdd8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@74bffdd8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@74bffdd8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@618a8c27
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@27bedc3d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@27bedc3d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@181d8f0b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@181d8f0b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@6aea1856
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@6aea1856
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@4c0f0b19
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@4c0f0b19
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@344562b4
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@344562b4
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@2a2e306a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@344c4550
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@344c4550
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@344c4550
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@61c557f9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@61c557f9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@61c557f9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@6b9ac5dc
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@778fde17
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@155c955d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@155c955d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@155c955d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@6f7ac6e3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@6f7ac6e3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@6f7ac6e3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@55bf2af9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@14dcbde7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@2c83ef05
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@2c83ef05
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@3e280407
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@305d2397
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@305d2397
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@12a0fda1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@12a0fda1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@31eaec53
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@b907cd5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@49d3367d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@6a7df667
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@6a7df667
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@131cd58b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@311caba8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@3124c60a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@19e4afc1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@6ca191fb
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@3834262c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@2fb7a3b6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@13118b26
+INFO  org.hibernate.dialect.Dialect: HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
+INFO  org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl: HHH000422: Disabling contextual LOB creation as connection was null
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2bafc22e] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@7feeb887]
+INFO  org.hibernate.validator.internal.util.Version: HV000001: Hibernate Validator null
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2bafc22e] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@7f308ab5]
+INFO  org.hibernate.hql.internal.QueryTranslatorFactoryInitiator: HHH000397: Using ASTQueryTranslatorFactory
+WARN  org.hibernate.orm.connections.pooling: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
+INFO  org.hibernate.orm.connections.pooling: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://mysql.stud.iie.ntnu.no:3306/g_sysutv_14]
+INFO  org.hibernate.orm.connections.pooling: HHH10001001: Connection properties: {password=****, user=g_sysutv_14}
+INFO  org.hibernate.orm.connections.pooling: HHH10001003: Autocommit mode: false
+INFO  org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl: HHH000115: Hibernate connection pool size: 20 (min=1)
+DEBUG org.hibernate.SQL: 
+    select
+        login0_.username as username1_8_0_,
+        login0_.hash as hash2_8_0_,
+        login0_.passwordSalt as password3_8_0_,
+        login0_.user_username as user_use4_8_0_ 
+    from
+        login login0_ 
+    where
+        login0_.username=?
diff --git a/src/main/java/NTNU/IDATT1002/controllers/Upload.java b/src/main/java/NTNU/IDATT1002/controllers/Upload.java
index 10156152..3048f002 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/Upload.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/Upload.java
@@ -134,12 +134,7 @@ public class Upload {
         if(!list.isEmpty()){
             //Store files in DataExchange
             App.ex.setUploadedFiles(list);
-            if (list.size() == 1){
-                switchToUploadedSingle();
-            }
-            else {
-                switchToUploadedMultiple();
-            }
+            switchToUploadedSingle();
         }
     }
 
@@ -193,12 +188,7 @@ public class Upload {
         if(!list.isEmpty()){
             //Stores files to DataExchange
             App.ex.setUploadedFiles(list);
-            if (list.size() == 1){
-                switchToUploadedSingle();
-            }
-            else {
-                switchToUploadedMultiple();
-            }
+            switchToUploadedSingle();
         }
     }
 }
diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
index 9321eba6..0283115c 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
@@ -2,27 +2,40 @@ package NTNU.IDATT1002.controllers;
 
 import NTNU.IDATT1002.App;
 import NTNU.IDATT1002.ApplicationState;
+import NTNU.IDATT1002.models.Album;
+import NTNU.IDATT1002.models.Histogram;
 import NTNU.IDATT1002.models.Tag;
-import NTNU.IDATT1002.repository.TagRepository;
 import NTNU.IDATT1002.service.ImageService;
-import NTNU.IDATT1002.service.TagService;
+import NTNU.IDATT1002.utils.ImageUtil;
+import NTNU.IDATT1002.utils.MetaDataExtractor;
 import javafx.event.ActionEvent;
+import javafx.event.EventHandler;
 import javafx.fxml.Initializable;
+import javafx.geometry.Insets;
 import javafx.scene.control.Button;
 import javafx.scene.control.TextArea;
 import javafx.scene.control.TextField;
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
 import javafx.scene.input.MouseEvent;
+import javafx.scene.layout.HBox;
+import javafx.scene.layout.VBox;
+import javafx.scene.text.Font;
+import javafx.scene.text.FontWeight;
+import javafx.scene.text.Text;
+import javafx.stage.FileChooser;
 
 import javax.persistence.EntityManager;
 import java.io.File;
 import java.io.IOException;
+import java.net.MalformedURLException;
 import java.net.URL;
+import java.nio.file.Files;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.ResourceBundle;
+import java.util.stream.Collectors;
 
 /**
  * Controls the buttons and changeable elements on upload_single.fxml,
@@ -32,6 +45,7 @@ import java.util.ResourceBundle;
  */
 public class UploadedSingle implements Initializable {
 
+  public VBox uploadContainer;
   ImageService imageService;
 
   public ImageView tbar_logo;
@@ -41,12 +55,6 @@ public class UploadedSingle implements Initializable {
   public Button tbar_map;
   public Button tbar_upload;
 
-  public TextField photo_title;
-  public TextField photo_tag;
-  public TextArea photo_desc;
-  public ImageView photo_image;
-
-  public Button acceptBtn;
   public Button tbar_albums;
 
 
@@ -58,13 +66,119 @@ public class UploadedSingle implements Initializable {
    * @param resources
    */
   public void initialize(URL location, ResourceBundle resources) {
-    photo_image.setImage(new Image(App.ex.getUploadedFiles()
-            .get(0)
-            .toURI()
-            .toString()));
+    List<File> files = App.ex.getUploadedFiles();
+    int maxPerPage = Math.min(files.size(), 50);
+    for (int i = 0; i < maxPerPage; i ++){
+      //A container for image and text
+      HBox imageContainer = new HBox();
+      imageContainer.setPrefWidth(1520);
+      imageContainer.setPrefHeight(300);
+
+      insertImageToContainer(files.get(i), imageContainer);
+      insertImageTextToContainer(files.get(i), imageContainer);
+      uploadContainer.getChildren().add(imageContainer);
+    }
+  }
+
+  /**
+   * Format and insert the first image in the given album to the given container.
+   *
+   * @param file the chosen file
+   * @param imageContainer a container for the image
+   */
+  private void insertImageToContainer(File file, HBox imageContainer){
+    ImageView imageView = new ImageView();
+    imageView.setFitHeight(300.0);
+    imageView.setFitWidth(533.0);
+    imageView.setPickOnBounds(true);
+    imageView.setPreserveRatio(true);
+    imageView.setImage(new Image(file.toURI().toString()));
+
+    imageContainer.getChildren().add(imageView);
+  }
+
+  /**
+   * Att text elements from album to the container
+   *
+   * @param file the album to display
+   * @param imageContainer the container for each separate album
+   */
+  private void insertImageTextToContainer(File file, HBox imageContainer) {
+    //Creates a vbox so that nodes is aligned in a column
+    VBox textContainer = new VBox();
+    textContainer.setSpacing(5);
+    textContainer.setPadding(new Insets(0, 0, 0, 25));
+    textContainer.setPrefHeight(300);
+    textContainer.setPrefWidth(987);
+
+    insertImageTitle(file, textContainer);
+    insertImageTags(file, textContainer);
+    insertImageMetadata(file, textContainer);
 
-    EntityManager entityManager = App.ex.getEntityManager();
-    imageService = new ImageService(entityManager);
+    imageContainer.getChildren().add(textContainer);
+  }
+
+  /**
+   * Insert title of the given album to the given container
+   * It is clickable, and switches to View Album page of that album
+   *
+   * @param file
+   * @param textContainer container for text elements of an album
+   */
+  private void insertImageTitle(File file, VBox textContainer) {
+    HBox titleContainer = new HBox();
+
+    Text titleLabel = new Text("Title: ");
+    titleLabel.setFont(Font.font("System", FontWeight.BOLD, 24));
+
+    TextField title = new TextField();
+    title.setFont(Font.font("System",24));
+
+    titleContainer.getChildren().addAll(titleLabel, title);
+
+
+    textContainer.getChildren().add(titleContainer);
+  }
+
+  /**
+   * Insert tags of the given album to the given container
+   *
+   * @param file
+   * @param textContainer container for text elements of an image
+   */
+  private void insertImageTags(File file, VBox textContainer) {
+    HBox tagContainer = new HBox();
+
+    Text tagLabel = new Text("Tags: ");
+    tagLabel.setFont(Font.font("System", FontWeight.BOLD, 24));
+
+    TextField tags = new TextField();
+    tags.setFont(Font.font("System",24));
+
+    tagContainer.getChildren().addAll(tagLabel, tags);
+
+    textContainer.getChildren().add(tagContainer);
+  }
+
+
+  /**
+   * Insert description of the given album to the given container
+   *
+   * @param file
+   * @param textContainer container for text elements of an image
+   */
+  private void insertImageMetadata(File file, VBox textContainer) {
+    Text metadataLabel = new Text("Metadata: ");
+    metadataLabel.setFont(Font.font("System", FontWeight.BOLD, 16));
+
+    MetaDataExtractor metaDataExtractor = new MetaDataExtractor();
+    Histogram histogram = metaDataExtractor.getHistogram(file);
+    TextArea metadata = new TextArea(histogram.getData());
+    metadata.setPrefWidth(400);
+    metadata.setFont(Font.font("System",16));
+
+
+    textContainer.getChildren().addAll(metadataLabel, metadata);
   }
 
   /**
@@ -135,18 +249,28 @@ public class UploadedSingle implements Initializable {
    * Method for uploading image to database with tags
    * Image itself is not stored but URL is
    *
-   * @author Lars ØStby
    * @param actionEvent
    * @throws IOException
    */
 
   public void uploadSingle(ActionEvent actionEvent) throws IOException {
     List<File> list = App.ex.getUploadedFiles();
-    File file = list.get(0);
-    List<Tag> tags = TagService.getTagsFromString(photo_tag.getText());
-    imageService.createImage(ApplicationState.getCurrentUser(), file, tags);
+    File fil = list.get(0);
+    ArrayList<Tag> tags = new ArrayList<>();
+    imageService.createImage(ApplicationState.getCurrentUser(), fil, tags);
+
     App.setRoot("main");
   }
 
+  /***
+   * Method for splitting the tag textField into tags in a list
+   * @param photo_tag
+   * @return list of string
+   */
+  public List<String> tagStringSplit(TextField photo_tag) {
+    String tagTekst = photo_tag.getText();
+    return Arrays.asList(tagTekst.split("(?=#)"));
 
+
+  }
 }
diff --git a/src/main/resources/NTNU/IDATT1002/uploaded_single.fxml b/src/main/resources/NTNU/IDATT1002/uploaded_single.fxml
index b325c316..18a537e8 100644
--- a/src/main/resources/NTNU/IDATT1002/uploaded_single.fxml
+++ b/src/main/resources/NTNU/IDATT1002/uploaded_single.fxml
@@ -1,15 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
+<?import javafx.geometry.Insets?>
 <?import javafx.scene.control.Button?>
-<?import javafx.scene.control.TextArea?>
+<?import javafx.scene.control.ScrollPane?>
 <?import javafx.scene.control.TextField?>
 <?import javafx.scene.image.Image?>
 <?import javafx.scene.image.ImageView?>
+<?import javafx.scene.layout.BorderPane?>
 <?import javafx.scene.layout.HBox?>
 <?import javafx.scene.layout.Pane?>
 <?import javafx.scene.layout.VBox?>
-<?import javafx.scene.text.Font?>
-<?import javafx.scene.text.Text?>
 
 <VBox alignment="CENTER" prefHeight="1080.0" prefWidth="1920.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="NTNU.IDATT1002.controllers.UploadedSingle">
    <children>
@@ -30,55 +30,41 @@
             <Button fx:id="tbar_upload" mnemonicParsing="false" onAction="#switchToUpload" prefHeight="25.0" prefWidth="114.0" text="UPLOAD" />
          </children>
       </HBox>
-      <HBox alignment="CENTER" prefHeight="982.0" prefWidth="1920.0" VBox.vgrow="ALWAYS">
+      <HBox alignment="CENTER" prefHeight="982.0" prefWidth="1920.0">
          <children>
-            <VBox alignment="CENTER" prefHeight="981.0" prefWidth="976.0" style="-fx-background-color: #444444;" HBox.hgrow="ALWAYS">
-               <children>
-                  <ImageView fx:id="photo_image" fitHeight="506.0" fitWidth="900.0" pickOnBounds="true" preserveRatio="true">
-                     <image>
-                        <Image url="@../../Images/placeholder-1920x1080.png" />
-                     </image>
-                  </ImageView>
-               </children>
-            </VBox>
-            <VBox alignment="CENTER" prefHeight="981.0" prefWidth="947.0" style="-fx-background-color: #666666;" HBox.hgrow="ALWAYS">
-               <children>
-                  <VBox alignment="CENTER" maxWidth="799.0" prefHeight="981.0" prefWidth="799.0" spacing="10.0">
-                     <children>
-                        <Text strokeType="OUTSIDE" strokeWidth="0.0" text="TITLE:">
-                           <font>
-                              <Font name="System Bold" size="36.0" />
-                           </font>
-                        </Text>
-                        <TextField fx:id="photo_title" prefHeight="32.0" prefWidth="689.0" promptText="Insert title here" />
-                        <Text strokeType="OUTSIDE" strokeWidth="0.0" text="TAGS:">
-                           <font>
-                              <Font name="System Bold" size="24.0" />
-                           </font>
-                        </Text>
-                        <TextField fx:id="photo_tag" prefHeight="32.0" prefWidth="728.0" promptText="#Blue, #water, #summer, etc..." />
-                        <Text strokeType="OUTSIDE" strokeWidth="0.0" text="DESCRIPTION:">
-                           <font>
-                              <Font name="System Bold" size="24.0" />
-                           </font>
-                        </Text>
-                        <TextArea fx:id="photo_desc" prefHeight="147.0" prefWidth="822.0" promptText="Insert description here" />
-                        <Text strokeType="OUTSIDE" strokeWidth="0.0" text="METADATA:">
-                           <font>
-                              <Font name="System Bold" size="24.0" />
-                           </font>
-                        </Text>
-                        <Pane prefHeight="364.0" prefWidth="822.0" style="-fx-background-color: #ffffff;" />
-                        <Button fx:id="acceptBtn" mnemonicParsing="false" onAction="#uploadSingle" text="ACCEPT">
-                           <font>
-                              <Font size="18.0" />
-                           </font>
-                        </Button>
-                     </children>
-                  </VBox>
-               </children>
-            </VBox>
+            <ScrollPane hbarPolicy="NEVER" prefHeight="1080.0" prefWidth="1920.0" HBox.hgrow="ALWAYS">
+               <content>
+                  <BorderPane>
+                     <right>
+                        <Pane minHeight="300.0" prefWidth="200.0" style="-fx-background-color: #6d6d6d;" BorderPane.alignment="CENTER" />
+                     </right>
+                     <bottom>
+                        <Pane prefHeight="250.0" style="-fx-background-color: #6d6d6d;" BorderPane.alignment="CENTER">
+                           <children>
+                              <HBox alignment="CENTER" layoutY="-2.0" prefHeight="84.0" prefWidth="1920.0" spacing="20.0" />
+                           </children>
+                        </Pane>
+                     </bottom>
+                     <center>
+                        <VBox fx:id="uploadContainer" maxHeight="1.7976931348623157E308" maxWidth="Infinity" minHeight="980.0" spacing="10.0" style="-fx-background-color: #555555;" BorderPane.alignment="CENTER" />
+                     </center>
+                     <top>
+                        <VBox prefHeight="250.0" style="-fx-background-color: #6d6d6d;" BorderPane.alignment="CENTER">
+                           <opaqueInsets>
+                              <Insets />
+                           </opaqueInsets>
+                           <padding>
+                              <Insets top="20.0" />
+                           </padding>
+                        </VBox>
+                     </top>
+                     <left>
+                        <Pane minHeight="300.0" prefWidth="200.0" style="-fx-background-color: #6d6d6d;" BorderPane.alignment="CENTER" />
+                     </left>
+                  </BorderPane>
+               </content>
+            </ScrollPane>
          </children>
       </HBox>
    </children>
-</VBox>
+</VBox>
\ No newline at end of file
-- 
GitLab


From 0bfedf51e0e291581e335f51b76339704762c4e0 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Mon, 6 Apr 2020 18:24:17 +0200
Subject: [PATCH 06/28] Dropdown with album id that can be added to image

---
 pom.xml                                       |  7 +++
 .../IDATT1002/controllers/UploadedSingle.java | 52 ++++++++++++++++++-
 2 files changed, 57 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index a1559a29..f409895e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -82,6 +82,13 @@
             <type>pom</type>
         </dependency>
 
+        <!-- Controlsfx https://mvnrepository.com/artifact/org.controlsfx/controlsfx -->
+        <dependency>
+            <groupId>org.controlsfx</groupId>
+            <artifactId>controlsfx</artifactId>
+            <version>11.0.1</version>
+        </dependency>
+
         <!-- MySQL Driver -->
         <dependency>
             <groupId>mysql</groupId>
diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
index 0283115c..9cdb0f0f 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
@@ -5,14 +5,20 @@ import NTNU.IDATT1002.ApplicationState;
 import NTNU.IDATT1002.models.Album;
 import NTNU.IDATT1002.models.Histogram;
 import NTNU.IDATT1002.models.Tag;
+import NTNU.IDATT1002.service.AlbumService;
 import NTNU.IDATT1002.service.ImageService;
 import NTNU.IDATT1002.utils.ImageUtil;
 import NTNU.IDATT1002.utils.MetaDataExtractor;
+import javafx.collections.FXCollections;
+import javafx.collections.ListChangeListener;
+import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
 import javafx.event.EventHandler;
 import javafx.fxml.Initializable;
 import javafx.geometry.Insets;
+import javafx.geometry.Pos;
 import javafx.scene.control.Button;
+import javafx.scene.control.ChoiceBox;
 import javafx.scene.control.TextArea;
 import javafx.scene.control.TextField;
 import javafx.scene.image.Image;
@@ -25,6 +31,8 @@ import javafx.scene.text.FontWeight;
 import javafx.scene.text.Text;
 import javafx.stage.FileChooser;
 
+import org.controlsfx.control.CheckComboBox;
+
 import javax.persistence.EntityManager;
 import java.io.File;
 import java.io.IOException;
@@ -57,7 +65,12 @@ public class UploadedSingle implements Initializable {
 
   public Button tbar_albums;
 
+  private AlbumService albumService;
 
+  public UploadedSingle(){
+    EntityManager entityManager = App.ex.getEntityManager();
+    albumService = new AlbumService(entityManager);
+  }
   /**
    * Method that runs when the controller is loaded
    * Sets the image url on the page to be the uploaded images url
@@ -94,7 +107,13 @@ public class UploadedSingle implements Initializable {
     imageView.setPreserveRatio(true);
     imageView.setImage(new Image(file.toURI().toString()));
 
-    imageContainer.getChildren().add(imageView);
+    HBox container = new HBox();
+    container.setPrefWidth(533);
+    container.setPrefHeight(300);
+    container.setAlignment(Pos.TOP_CENTER);
+    container.getChildren().add(imageView);
+
+    imageContainer.getChildren().add(container);
   }
 
   /**
@@ -114,6 +133,7 @@ public class UploadedSingle implements Initializable {
     insertImageTitle(file, textContainer);
     insertImageTags(file, textContainer);
     insertImageMetadata(file, textContainer);
+    insertCheckedChoiceBox(textContainer);
 
     imageContainer.getChildren().add(textContainer);
   }
@@ -174,13 +194,41 @@ public class UploadedSingle implements Initializable {
     MetaDataExtractor metaDataExtractor = new MetaDataExtractor();
     Histogram histogram = metaDataExtractor.getHistogram(file);
     TextArea metadata = new TextArea(histogram.getData());
-    metadata.setPrefWidth(400);
+
+    metadata.setEditable(false);
+    metadata.setPrefWidth(500);
     metadata.setFont(Font.font("System",16));
 
 
     textContainer.getChildren().addAll(metadataLabel, metadata);
   }
 
+  /**
+   * Method that generates a dropdown with checkable albums
+   * The image is added to the following albums
+   * @param textContainer container for text elements of an image
+   */
+  private void insertCheckedChoiceBox(VBox textContainer){
+    //TODO: Now the dropdown displays album id, since this is unique for all albums. Make it possible to set title as Value but get
+    ObservableList<String> options = FXCollections.observableArrayList();
+    albumService.getAllAlbums().stream()
+            //All the users albums
+            .filter(album -> album.getUser() == ApplicationState.getCurrentUser())
+            .forEach(album -> {
+              options.add(album.getId().toString());
+            });
+    CheckComboBox<String> checkComboBox = new CheckComboBox<>(options);
+    checkComboBox.setTitle("Add to albums");
+    /*
+    checkComboBox.getCheckModel().getCheckedItems().addListener(new ListChangeListener<String>() {
+      public void onChanged(ListChangeListener.Change<? extends String> c) {
+        checkComboBox.getCheckModel().getCheckedItems();
+      }
+    });
+     */
+    textContainer.getChildren().add(checkComboBox);
+  }
+
   /**
    * Method that changes stage to Main page
    *
-- 
GitLab


From 9ab11f7635a69a36ef6d3033c45a9359098cc0a0 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 00:50:26 +0200
Subject: [PATCH 07/28] Tag to image upload

---
 .../IDATT1002/controllers/UploadedSingle.java | 97 ++++++++++++++-----
 1 file changed, 71 insertions(+), 26 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
index 9cdb0f0f..388d731c 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
@@ -3,10 +3,10 @@ package NTNU.IDATT1002.controllers;
 import NTNU.IDATT1002.App;
 import NTNU.IDATT1002.ApplicationState;
 import NTNU.IDATT1002.models.Album;
-import NTNU.IDATT1002.models.Histogram;
 import NTNU.IDATT1002.models.Tag;
 import NTNU.IDATT1002.service.AlbumService;
 import NTNU.IDATT1002.service.ImageService;
+import NTNU.IDATT1002.service.TagService;
 import NTNU.IDATT1002.utils.ImageUtil;
 import NTNU.IDATT1002.utils.MetaDataExtractor;
 import javafx.collections.FXCollections;
@@ -17,10 +17,9 @@ import javafx.event.EventHandler;
 import javafx.fxml.Initializable;
 import javafx.geometry.Insets;
 import javafx.geometry.Pos;
-import javafx.scene.control.Button;
-import javafx.scene.control.ChoiceBox;
-import javafx.scene.control.TextArea;
-import javafx.scene.control.TextField;
+import javafx.scene.Node;
+import javafx.scene.Parent;
+import javafx.scene.control.*;
 import javafx.scene.image.Image;
 import javafx.scene.image.ImageView;
 import javafx.scene.input.MouseEvent;
@@ -32,6 +31,7 @@ import javafx.scene.text.Text;
 import javafx.stage.FileChooser;
 
 import org.controlsfx.control.CheckComboBox;
+import org.hibernate.boot.jaxb.internal.stax.HbmEventReader;
 
 import javax.persistence.EntityManager;
 import java.io.File;
@@ -39,10 +39,7 @@ import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.nio.file.Files;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.ResourceBundle;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -66,10 +63,12 @@ public class UploadedSingle implements Initializable {
   public Button tbar_albums;
 
   private AlbumService albumService;
+  private TagService tagService;
 
   public UploadedSingle(){
     EntityManager entityManager = App.ex.getEntityManager();
     albumService = new AlbumService(entityManager);
+    tagService = new TagService(entityManager);
   }
   /**
    * Method that runs when the controller is loaded
@@ -91,6 +90,18 @@ public class UploadedSingle implements Initializable {
       insertImageTextToContainer(files.get(i), imageContainer);
       uploadContainer.getChildren().add(imageContainer);
     }
+    if (uploadContainer.getChildren().size() > 0){
+      Button accept = new Button("Accept");
+      accept.setOnAction(actionEvent -> {
+        try {
+          upload();
+        } catch (IOException e) {
+          e.printStackTrace();
+        }
+      });
+      uploadContainer.setAlignment(Pos.TOP_CENTER);
+      uploadContainer.getChildren().add(accept);
+    }
   }
 
   /**
@@ -152,11 +163,11 @@ public class UploadedSingle implements Initializable {
     titleLabel.setFont(Font.font("System", FontWeight.BOLD, 24));
 
     TextField title = new TextField();
+    title.setId("title");
     title.setFont(Font.font("System",24));
 
     titleContainer.getChildren().addAll(titleLabel, title);
 
-
     textContainer.getChildren().add(titleContainer);
   }
 
@@ -173,6 +184,7 @@ public class UploadedSingle implements Initializable {
     tagLabel.setFont(Font.font("System", FontWeight.BOLD, 24));
 
     TextField tags = new TextField();
+    tags.setId("tags");
     tags.setFont(Font.font("System",24));
 
     tagContainer.getChildren().addAll(tagLabel, tags);
@@ -192,8 +204,8 @@ public class UploadedSingle implements Initializable {
     metadataLabel.setFont(Font.font("System", FontWeight.BOLD, 16));
 
     MetaDataExtractor metaDataExtractor = new MetaDataExtractor();
-    Histogram histogram = metaDataExtractor.getHistogram(file);
-    TextArea metadata = new TextArea(histogram.getData());
+    //Histogram histogram = metaDataExtractor.getHistogram(file);
+    TextArea metadata = new TextArea("histogram.getData()");
 
     metadata.setEditable(false);
     metadata.setPrefWidth(500);
@@ -205,19 +217,19 @@ public class UploadedSingle implements Initializable {
 
   /**
    * Method that generates a dropdown with checkable albums
-   * The image is added to the following albums
+   * The image is added to the following albums after it is created
    * @param textContainer container for text elements of an image
    */
   private void insertCheckedChoiceBox(VBox textContainer){
-    //TODO: Now the dropdown displays album id, since this is unique for all albums. Make it possible to set title as Value but get
-    ObservableList<String> options = FXCollections.observableArrayList();
+    ObservableList<Album> options = FXCollections.observableArrayList();
     albumService.getAllAlbums().stream()
-            //All the users albums
+            //Filters the users albums
             .filter(album -> album.getUser() == ApplicationState.getCurrentUser())
-            .forEach(album -> {
-              options.add(album.getId().toString());
-            });
-    CheckComboBox<String> checkComboBox = new CheckComboBox<>(options);
+            //Adds a checkbox for each album
+            //TODO: make toString in album a bit more userfriendly for this dropdown
+            .forEach(options::add);
+    CheckComboBox<Album> checkComboBox = new CheckComboBox<>(options);
+    checkComboBox.setId("checkbox");
     checkComboBox.setTitle("Add to albums");
     /*
     checkComboBox.getCheckModel().getCheckedItems().addListener(new ListChangeListener<String>() {
@@ -297,15 +309,36 @@ public class UploadedSingle implements Initializable {
    * Method for uploading image to database with tags
    * Image itself is not stored but URL is
    *
-   * @param actionEvent
    * @throws IOException
    */
 
-  public void uploadSingle(ActionEvent actionEvent) throws IOException {
-    List<File> list = App.ex.getUploadedFiles();
-    File fil = list.get(0);
-    ArrayList<Tag> tags = new ArrayList<>();
-    imageService.createImage(ApplicationState.getCurrentUser(), fil, tags);
+  public void upload() throws IOException {
+    List<Node> imageContainers = uploadContainer.getChildren().stream()
+            .filter(node -> node instanceof HBox)
+            .collect(Collectors.toList());
+
+    for(int i = 0; i < imageContainers.size(); i++){
+      List<Node> nodes = getAllNodes((Parent) imageContainers.get(i));
+      List<Node> childNodes = nodes.stream().filter(n -> n.getId() != null && (n.getId().equals("title") || n.getId().equals("tags") || n.getId().equals("checkbox"))).collect(Collectors.toList());
+      Node title = childNodes.stream().filter(textField -> textField.getId().equals("title")).collect(Collectors.toList()).get(0);
+      Node tags = childNodes.stream().filter(textField -> textField.getId().equals("tags")).collect(Collectors.toList()).get(0);
+      Node comboBox = childNodes.stream().filter(textField -> textField.getId().equals("checkbox")).collect(Collectors.toList()).get(0);
+
+      ObservableList<Album> chosenAlbums = ((CheckComboBox<Album>) comboBox).getItems();
+      String tagsString = ((TextField) tags).getText();
+      List<Tag> tagList = TagService.getTagsFromString(tagsString);
+      List<Tag> createdTags = tagService.getOrCreateTags(tagList);
+      System.out.println(ApplicationState.getCurrentUser().getFirstName());
+      System.out.println(App.ex.getUploadedFiles().get(0).toURI().toString());
+      System.out.println(createdTags);
+      //Todo: make title apply to image
+      Optional<NTNU.IDATT1002.models.Image> createdImage = imageService.createImage(ApplicationState.getCurrentUser(), App.ex.getUploadedFiles().get(i), createdTags);
+      createdImage.ifPresent(image -> {
+        for (Album album : chosenAlbums) {
+          album.addImage(image);
+        }
+      });
+    }
 
     App.setRoot("main");
   }
@@ -318,7 +351,19 @@ public class UploadedSingle implements Initializable {
   public List<String> tagStringSplit(TextField photo_tag) {
     String tagTekst = photo_tag.getText();
     return Arrays.asList(tagTekst.split("(?=#)"));
+  }
 
+  public static ArrayList<Node> getAllNodes(Parent root) {
+    ArrayList<Node> nodes = new ArrayList<Node>();
+    addAllDescendents(root, nodes);
+    return nodes;
+  }
 
+  private static void addAllDescendents(Parent parent, ArrayList<Node> nodes) {
+    for (Node node : parent.getChildrenUnmodifiable()) {
+      nodes.add(node);
+      if (node instanceof Parent)
+        addAllDescendents((Parent)node, nodes);
+    }
   }
 }
-- 
GitLab


From 4741bd734c5ad806098da93be9e4f11738e680a0 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 00:51:10 +0200
Subject: [PATCH 08/28] log

---
 log/logfile.log | 1344 +++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 1230 insertions(+), 114 deletions(-)

diff --git a/log/logfile.log b/log/logfile.log
index 265ca9c3..f9e2b28f 100644
--- a/log/logfile.log
+++ b/log/logfile.log
@@ -4,123 +4,123 @@ INFO  org.hibernate.jpa.internal.util.LogHelper: HHH000204: Processing Persisten
 	name: ImageApplication
 	...]
 INFO  org.hibernate.annotations.common.Version: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@453eeb69
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@453eeb69
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@453eeb69
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@5fff88d6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@2b04ddd4
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@5e16f437
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@2a441677
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@2a441677
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@2a441677
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@b27bf63
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@b27bf63
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@b27bf63
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@3312b00
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@3312b00
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@3312b00
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@487468c2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@487468c2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@487468c2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@3cda4945
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@3cda4945
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@3cda4945
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3a0c2379
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3a0c2379
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@3a0c2379
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@40d6e8f6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@40d6e8f6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@40d6e8f6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@774f07d3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@774f07d3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@36ce8cb3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@36ce8cb3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@7870ef46
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@7870ef46
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@537ae267
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@6b56f202
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@3f24641d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@3f24641d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@41f28cac
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@41f28cac
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@43494fda
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@43494fda
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@7eeb6dc0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@7eeb6dc0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@457d707e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@457d707e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@1fc192be
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@1fc192be
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c19528d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c19528d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@44bea630
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@44bea630
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@674221b1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@674221b1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@7efb89b2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@7efb89b2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@255f41fb
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@255f41fb
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@1bda1460
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@1bda1460
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@1bda1460
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@6af045cd
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@74bffdd8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@74bffdd8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@74bffdd8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@618a8c27
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@27bedc3d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@27bedc3d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@181d8f0b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@181d8f0b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@6aea1856
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@6aea1856
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@4c0f0b19
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@4c0f0b19
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@344562b4
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@344562b4
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@2a2e306a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@344c4550
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@344c4550
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@344c4550
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@61c557f9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@61c557f9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@61c557f9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@6b9ac5dc
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@778fde17
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@155c955d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@155c955d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@155c955d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@6f7ac6e3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@6f7ac6e3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@6f7ac6e3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@55bf2af9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@14dcbde7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@2c83ef05
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@2c83ef05
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@3e280407
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@305d2397
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@305d2397
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@12a0fda1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@12a0fda1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@31eaec53
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@b907cd5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@49d3367d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@6a7df667
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@6a7df667
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@131cd58b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@311caba8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@3124c60a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@19e4afc1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@6ca191fb
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@3834262c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@2fb7a3b6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@13118b26
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@2a75ba5a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@2a75ba5a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@2a75ba5a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@31729b23
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@2fb1145a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@5670b664
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@5105347e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@5105347e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@5105347e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@7c4d6559
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@7c4d6559
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@7c4d6559
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@57566878
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@57566878
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@57566878
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@513a6e97
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@513a6e97
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@513a6e97
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@707c8416
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@707c8416
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@707c8416
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@787d1168
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@787d1168
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@787d1168
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@5c6f58f5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@5c6f58f5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@5c6f58f5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@62e64dae
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@62e64dae
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@4c0e55a2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@4c0e55a2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@3bd9f889
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@3bd9f889
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@2aa40b2a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@2da928b8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@751905a9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@751905a9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@1f9abd58
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@1f9abd58
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@4b8c3460
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@4b8c3460
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@551e9b6b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@551e9b6b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@3b8845df
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@3b8845df
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@2bb61b88
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@2bb61b88
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@28df6e7c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@28df6e7c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@3920c559
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@3920c559
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@5e28a17
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@5e28a17
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@5418aa84
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@5418aa84
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@56cc0a6b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@56cc0a6b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@611f0697
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@611f0697
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@611f0697
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@3cf01228
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@6ae2ea93
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@6ae2ea93
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@6ae2ea93
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@708e7d15
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@54a45367
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@54a45367
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@41fc827c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@41fc827c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@3b767aec
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@3b767aec
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@6e868151
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@6e868151
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@73997c00
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@73997c00
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@33a08a82
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@340b1ac1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@340b1ac1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@340b1ac1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@2a95d89c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@2a95d89c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@2a95d89c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@2e518bd6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@62cc793d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@1f0dd0bd
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@1f0dd0bd
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@1f0dd0bd
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@4282b361
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@4282b361
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@4282b361
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@30d332d0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@405cee97
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@215c37ae
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@215c37ae
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@3ec0a319
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@355048c0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@355048c0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@54297225
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@54297225
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@7a02bcdd
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@631bab75
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@13564705
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@f90833f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@f90833f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@3d7c86ff
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@5eb999a5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@768f33d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@42c04cf6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@1bd2612f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@934b741
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@49055c41
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@9621e6b
 INFO  org.hibernate.dialect.Dialect: HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
 INFO  org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl: HHH000422: Disabling contextual LOB creation as connection was null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2bafc22e] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@7feeb887]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6fc47d42] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@3fae55f]
 INFO  org.hibernate.validator.internal.util.Version: HV000001: Hibernate Validator null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@2bafc22e] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@7f308ab5]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6fc47d42] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@55444016]
 INFO  org.hibernate.hql.internal.QueryTranslatorFactoryInitiator: HHH000397: Using ASTQueryTranslatorFactory
 WARN  org.hibernate.orm.connections.pooling: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
 INFO  org.hibernate.orm.connections.pooling: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://mysql.stud.iie.ntnu.no:3306/g_sysutv_14]
@@ -137,3 +137,1119 @@ DEBUG org.hibernate.SQL:
         login login0_ 
     where
         login0_.username=?
+DEBUG org.hibernate.SQL: 
+    /* 
+from
+    NTNU.IDATT1002.models.Album */ select
+        album0_.id as id1_0_,
+        album0_.createdAt as createdA2_0_,
+        album0_.description as descript3_0_,
+        album0_.title as title4_0_,
+        album0_.updatedAt as updatedA5_0_,
+        album0_.user_username as user_use6_0_ 
+    from
+        album album0_
+DEBUG org.hibernate.SQL: 
+    select
+        user0_.username as username1_11_0_,
+        user0_.birthDate as birthDat2_11_0_,
+        user0_.callingCode as callingC3_11_0_,
+        user0_.email as email4_11_0_,
+        user0_.firstName as firstNam5_11_0_,
+        user0_.isActive as isActive6_11_0_,
+        user0_.isAdmin as isAdmin7_11_0_,
+        user0_.lastName as lastName8_11_0_,
+        user0_.phoneNumber as phoneNum9_11_0_ 
+    from
+        user user0_ 
+    where
+        user0_.username=?
+DEBUG org.hibernate.SQL: 
+    /* 
+from
+    NTNU.IDATT1002.models.Album */ select
+        album0_.id as id1_0_,
+        album0_.createdAt as createdA2_0_,
+        album0_.description as descript3_0_,
+        album0_.title as title4_0_,
+        album0_.updatedAt as updatedA5_0_,
+        album0_.user_username as user_use6_0_ 
+    from
+        album album0_
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    /* Tag.findByName */ select
+        tag0_.tagId as tagId1_10_,
+        tag0_.name as name2_10_ 
+    from
+        tag tag0_ 
+    where
+        tag0_.name=?
+DEBUG org.hibernate.SQL: 
+    /* Tag.findByName */ select
+        tag0_.tagId as tagId1_10_,
+        tag0_.name as name2_10_ 
+    from
+        tag tag0_ 
+    where
+        tag0_.name=?
+DEBUG org.hibernate.SQL: 
+    /* insert NTNU.IDATT1002.models.Tag
+        */ insert 
+        into
+            tag
+            (name) 
+        values
+            (?)
+DEBUG org.hibernate.SQL: 
+    select
+        last_insert_id()
-- 
GitLab


From 8c6b459405510e75b3677f463f1202f72bd4fad0 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 02:17:56 +0200
Subject: [PATCH 09/28] Chosen albums now ads image uploaded

---
 log/logfile.log                               | 341 +++++++++++-------
 .../IDATT1002/controllers/UploadedSingle.java |  46 +--
 .../NTNU/IDATT1002/controllers/ViewAlbum.java |  41 ++-
 .../NTNU/IDATT1002/service/AlbumService.java  |   6 +
 4 files changed, 263 insertions(+), 171 deletions(-)

diff --git a/log/logfile.log b/log/logfile.log
index f9e2b28f..0dd90a7b 100644
--- a/log/logfile.log
+++ b/log/logfile.log
@@ -4,123 +4,123 @@ INFO  org.hibernate.jpa.internal.util.LogHelper: HHH000204: Processing Persisten
 	name: ImageApplication
 	...]
 INFO  org.hibernate.annotations.common.Version: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@2a75ba5a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@2a75ba5a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@2a75ba5a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@31729b23
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@2fb1145a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@5670b664
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@5105347e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@5105347e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@5105347e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@7c4d6559
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@7c4d6559
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@7c4d6559
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@57566878
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@57566878
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@57566878
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@513a6e97
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@513a6e97
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@513a6e97
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@707c8416
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@707c8416
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@707c8416
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@787d1168
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@787d1168
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@787d1168
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@5c6f58f5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@5c6f58f5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@5c6f58f5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@62e64dae
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@62e64dae
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@4c0e55a2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@4c0e55a2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@3bd9f889
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@3bd9f889
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@2aa40b2a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@2da928b8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@751905a9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@751905a9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@1f9abd58
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@1f9abd58
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@4b8c3460
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@4b8c3460
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@551e9b6b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@551e9b6b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@3b8845df
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@3b8845df
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@2bb61b88
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@2bb61b88
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@28df6e7c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@28df6e7c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@3920c559
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@3920c559
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@5e28a17
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@5e28a17
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@5418aa84
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@5418aa84
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@56cc0a6b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@56cc0a6b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@611f0697
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@611f0697
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@611f0697
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@3cf01228
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@6ae2ea93
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@6ae2ea93
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@6ae2ea93
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@708e7d15
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@54a45367
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@54a45367
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@41fc827c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@41fc827c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@3b767aec
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@3b767aec
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@6e868151
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@6e868151
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@73997c00
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@73997c00
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@33a08a82
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@340b1ac1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@340b1ac1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@340b1ac1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@2a95d89c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@2a95d89c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@2a95d89c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@2e518bd6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@62cc793d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@1f0dd0bd
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@1f0dd0bd
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@1f0dd0bd
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@4282b361
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@4282b361
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@4282b361
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@30d332d0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@405cee97
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@215c37ae
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@215c37ae
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@3ec0a319
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@355048c0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@355048c0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@54297225
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@54297225
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@7a02bcdd
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@631bab75
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@13564705
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@f90833f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@f90833f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@3d7c86ff
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@5eb999a5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@768f33d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@42c04cf6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@1bd2612f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@934b741
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@49055c41
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@9621e6b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@31acde8e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@31acde8e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@31acde8e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@255dc16f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@13655025
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@4a10662
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@3d17a8c6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@3d17a8c6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@3d17a8c6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@62201c61
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@62201c61
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@62201c61
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@78480b40
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@78480b40
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@78480b40
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@1e4f3d72
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@1e4f3d72
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@1e4f3d72
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@2116331d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@2116331d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@2116331d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@66dd2371
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@66dd2371
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@66dd2371
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@5d04f340
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@5d04f340
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@5d04f340
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@2b1d8ec0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@2b1d8ec0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@6ae51965
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@6ae51965
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@2d93ee97
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@2d93ee97
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@4e88d3e3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@59757fc4
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@6100e9ed
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@6100e9ed
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@790b7021
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@790b7021
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@67d473e1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@67d473e1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@59c7e38d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@59c7e38d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@123ab848
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@123ab848
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@1662b444
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@1662b444
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@cf133b2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@cf133b2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@2300b068
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@2300b068
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@6dd07598
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@6dd07598
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@771b6297
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@771b6297
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@13d2b5e0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@13d2b5e0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@3d77ab42
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@3d77ab42
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@3d77ab42
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@16ec60f8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@68d5abd7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@68d5abd7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@68d5abd7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@502c4f70
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@2e15570f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@2e15570f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@21facc9c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@21facc9c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@38906661
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@38906661
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@c1a48ab
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@c1a48ab
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@71a0ba0e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@71a0ba0e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@3c3f03f3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@46e357c3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@46e357c3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@46e357c3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@6fb3d67e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@6fb3d67e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@6fb3d67e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@6c81f9a7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@4f800401
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@66b14357
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@66b14357
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@66b14357
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@50c4e4bf
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@50c4e4bf
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@50c4e4bf
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@1354f2ec
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@31c4b0de
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@723e6a60
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@723e6a60
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@21433ae2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@507763ac
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@507763ac
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@5a33d23a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@5a33d23a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@5f2bb6b0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@780c7b52
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@2781f641
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@2c6ab071
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@2c6ab071
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@51ecea85
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@135c9270
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@68988f19
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@21dbbeff
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@17d5c083
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@60ed0f1b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@4ca1a458
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@3071d775
 INFO  org.hibernate.dialect.Dialect: HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
 INFO  org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl: HHH000422: Disabling contextual LOB creation as connection was null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6fc47d42] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@3fae55f]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6ad679af] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@3b3bb07f]
 INFO  org.hibernate.validator.internal.util.Version: HV000001: Hibernate Validator null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6fc47d42] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@55444016]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6ad679af] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@7315397d]
 INFO  org.hibernate.hql.internal.QueryTranslatorFactoryInitiator: HHH000397: Using ASTQueryTranslatorFactory
 WARN  org.hibernate.orm.connections.pooling: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
 INFO  org.hibernate.orm.connections.pooling: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://mysql.stud.iie.ntnu.no:3306/g_sysutv_14]
@@ -164,18 +164,6 @@ DEBUG org.hibernate.SQL:
         user user0_ 
     where
         user0_.username=?
-DEBUG org.hibernate.SQL: 
-    /* 
-from
-    NTNU.IDATT1002.models.Album */ select
-        album0_.id as id1_0_,
-        album0_.createdAt as createdA2_0_,
-        album0_.description as descript3_0_,
-        album0_.title as title4_0_,
-        album0_.updatedAt as updatedA5_0_,
-        album0_.user_username as user_use6_0_ 
-    from
-        album album0_
 DEBUG org.hibernate.SQL: 
     select
         images0_.Album_id as Album_id1_1_0_,
@@ -1227,13 +1215,35 @@ DEBUG org.hibernate.SQL:
     where
         tags0_.Album_id=?
 DEBUG org.hibernate.SQL: 
-    /* Tag.findByName */ select
-        tag0_.tagId as tagId1_10_,
-        tag0_.name as name2_10_ 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
     from
-        tag tag0_ 
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
     where
-        tag0_.name=?
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
 DEBUG org.hibernate.SQL: 
     /* Tag.findByName */ select
         tag0_.tagId as tagId1_10_,
@@ -1253,3 +1263,72 @@ DEBUG org.hibernate.SQL:
 DEBUG org.hibernate.SQL: 
     select
         last_insert_id()
+DEBUG org.hibernate.SQL: 
+    select
+        next_val as id_val 
+    from
+        hibernate_sequence for update
+            
+DEBUG org.hibernate.SQL: 
+    update
+        hibernate_sequence 
+    set
+        next_val= ? 
+    where
+        next_val=?
+DEBUG org.hibernate.SQL: 
+    select
+        next_val as id_val 
+    from
+        hibernate_sequence for update
+            
+DEBUG org.hibernate.SQL: 
+    update
+        hibernate_sequence 
+    set
+        next_val= ? 
+    where
+        next_val=?
+DEBUG org.hibernate.SQL: 
+    /* insert NTNU.IDATT1002.models.GeoLocation
+        */ insert 
+        into
+            geolocation
+            (latitude, longitude, geoLocationId) 
+        values
+            (?, ?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert NTNU.IDATT1002.models.Metadata
+        */ insert 
+        into
+            metadata
+            (iso, aperture, camera, filedimension, filesize, filetype, focallength, geolocation_geoLocationId, lens, photodate, shutterspeed, metadataId) 
+        values
+            (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert NTNU.IDATT1002.models.Image
+        */ insert 
+        into
+            image
+            (metadata_metadataId, path, rawImage, uploadedAt, user_username) 
+        values
+            (?, ?, ?, ?, ?)
+DEBUG org.hibernate.SQL: 
+    select
+        last_insert_id()
+DEBUG org.hibernate.SQL: 
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
+        into
+            album_image
+            (Album_id, images_id) 
+        values
+            (?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert collection
+        row NTNU.IDATT1002.models.Image.albums */ insert 
+        into
+            image_album
+            (Image_id, albums_id) 
+        values
+            (?, ?)
diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
index 388d731c..2e5cbdf2 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
@@ -51,7 +51,6 @@ import java.util.stream.Collectors;
 public class UploadedSingle implements Initializable {
 
   public VBox uploadContainer;
-  ImageService imageService;
 
   public ImageView tbar_logo;
   public TextField tbar_search;
@@ -63,12 +62,12 @@ public class UploadedSingle implements Initializable {
   public Button tbar_albums;
 
   private AlbumService albumService;
-  private TagService tagService;
+  private ImageService imageService;
 
   public UploadedSingle(){
     EntityManager entityManager = App.ex.getEntityManager();
     albumService = new AlbumService(entityManager);
-    tagService = new TagService(entityManager);
+    imageService = new ImageService(entityManager);
   }
   /**
    * Method that runs when the controller is loaded
@@ -311,35 +310,40 @@ public class UploadedSingle implements Initializable {
    *
    * @throws IOException
    */
-
   public void upload() throws IOException {
+    //List of containers for each selected image
     List<Node> imageContainers = uploadContainer.getChildren().stream()
             .filter(node -> node instanceof HBox)
             .collect(Collectors.toList());
 
     for(int i = 0; i < imageContainers.size(); i++){
-      List<Node> nodes = getAllNodes((Parent) imageContainers.get(i));
-      List<Node> childNodes = nodes.stream().filter(n -> n.getId() != null && (n.getId().equals("title") || n.getId().equals("tags") || n.getId().equals("checkbox"))).collect(Collectors.toList());
-      Node title = childNodes.stream().filter(textField -> textField.getId().equals("title")).collect(Collectors.toList()).get(0);
-      Node tags = childNodes.stream().filter(textField -> textField.getId().equals("tags")).collect(Collectors.toList()).get(0);
-      Node comboBox = childNodes.stream().filter(textField -> textField.getId().equals("checkbox")).collect(Collectors.toList()).get(0);
-
-      ObservableList<Album> chosenAlbums = ((CheckComboBox<Album>) comboBox).getItems();
-      String tagsString = ((TextField) tags).getText();
-      List<Tag> tagList = TagService.getTagsFromString(tagsString);
-      List<Tag> createdTags = tagService.getOrCreateTags(tagList);
-      System.out.println(ApplicationState.getCurrentUser().getFirstName());
-      System.out.println(App.ex.getUploadedFiles().get(0).toURI().toString());
-      System.out.println(createdTags);
-      //Todo: make title apply to image
-      Optional<NTNU.IDATT1002.models.Image> createdImage = imageService.createImage(ApplicationState.getCurrentUser(), App.ex.getUploadedFiles().get(i), createdTags);
+      //Getting all child nodes and sorts out those with correct id
+      List<Node> childNodes = getAllNodes((Parent) imageContainers.get(i)).stream()
+              .filter(n -> n.getId() != null && (n.getId().equals("title") || n.getId().equals("tags") || n.getId().equals("checkbox")))
+              .collect(Collectors.toList());
+
+      //Todo: make title apply to images
+      Node titleField = childNodes.stream().filter(node -> node.getId().equals("title")).collect(Collectors.toList()).get(0);
+      Node tagsField = childNodes.stream().filter(node -> node.getId().equals("tags")).collect(Collectors.toList()).get(0);
+      Node comboBox = childNodes.stream().filter(node -> node.getId().equals("checkbox")).collect(Collectors.toList()).get(0);
+
+      //List of the albums checked on the dropdown list
+      ObservableList<Album> chosenAlbums = ((CheckComboBox<Album>) comboBox).getCheckModel().getCheckedItems();
+
+      //Each of the uploaded images in DataExchange index match on each container displaying it on the page
+      File file = App.ex.getUploadedFiles().get(i);
+      String tagsString = ((TextField) tagsField).getText();
+      List<Tag> tags = TagService.getTagsFromString(tagsString);
+
+      //Try creating image with the tags entered
+      Optional<NTNU.IDATT1002.models.Image> createdImage = imageService.createImage(ApplicationState.getCurrentUser(), file, tags);
       createdImage.ifPresent(image -> {
+        //For each chosen album checked the image is added
         for (Album album : chosenAlbums) {
-          album.addImage(image);
+          albumService.addImage(album, image);
         }
       });
     }
-
     App.setRoot("main");
   }
 
diff --git a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
index 65513152..426aa027 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
@@ -84,25 +84,28 @@ public class ViewAlbum implements Initializable {
         Optional<Album> foundAlbum = albumService.getAlbumById(currentAlbumId);
         foundAlbum.ifPresent(album -> {
             currentAlbum = album;
-            NTNU.IDATT1002.models.Image titleImage = album.getImages().get(0);
-            Image image = ImageUtil.convertToFXImage(titleImage);
-            mainPicture.setImage(image);
-            pictureTitleField.setText("LEGG TIL BILDETITTEL HER");
-            pictureTagsField.setText("#LEGG #TIL #TAGS #HER");
-            insertAlbumTextToContainer(album);
-            for (NTNU.IDATT1002.models.Image i: album.getImages()) {
-                ImageView iV = new ImageView();
-                iV.setFitHeight(64);
-                iV.setFitWidth(114);
-                iV.setPreserveRatio(true);
-                iV.setId(i.getId().toString());
-                iV.setImage(ImageUtil.convertToFXImage(i));
-                albumImages.getChildren().add(iV);
-                iV.setOnMouseClicked(new EventHandler<MouseEvent>() {
-                    @Override public void handle(MouseEvent mouseEvent) {
-                        setActiveImage(mouseEvent);
-                    }
-                });
+            if (album.getImages().size() > 0) {
+                NTNU.IDATT1002.models.Image titleImage = album.getImages().get(0);
+                Image image = ImageUtil.convertToFXImage(titleImage);
+                mainPicture.setImage(image);
+                pictureTitleField.setText("LEGG TIL BILDETITTEL HER");
+                pictureTagsField.setText("#LEGG #TIL #TAGS #HER");
+                insertAlbumTextToContainer(album);
+                for (NTNU.IDATT1002.models.Image i : album.getImages()) {
+                    ImageView iV = new ImageView();
+                    iV.setFitHeight(64);
+                    iV.setFitWidth(114);
+                    iV.setPreserveRatio(true);
+                    iV.setId(i.getId().toString());
+                    iV.setImage(ImageUtil.convertToFXImage(i));
+                    albumImages.getChildren().add(iV);
+                    iV.setOnMouseClicked(new EventHandler<MouseEvent>() {
+                        @Override
+                        public void handle(MouseEvent mouseEvent) {
+                            setActiveImage(mouseEvent);
+                        }
+                    });
+                }
             }
         });
     }
diff --git a/src/main/java/NTNU/IDATT1002/service/AlbumService.java b/src/main/java/NTNU/IDATT1002/service/AlbumService.java
index 2a698a2a..ce706928 100644
--- a/src/main/java/NTNU/IDATT1002/service/AlbumService.java
+++ b/src/main/java/NTNU/IDATT1002/service/AlbumService.java
@@ -74,6 +74,12 @@ public class AlbumService {
         return albumRepository.save(album);
     }
 
+    //Todo: made this as a temporary method to test upload class. Check if this is correct usage
+    public Optional<Album> addImage(Album album, Image image){
+        album.addImage(image);
+        return albumRepository.save(album);
+    }
+
     /**
      * Retrieves all albums created by the given user by username.
      *
-- 
GitLab


From a745a3ecdd50830859f0ab397a3c1636b8eaf6b9 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 10:33:01 +0200
Subject: [PATCH 10/28] only sets root to main if all files was uploaded

---
 .../IDATT1002/controllers/UploadedSingle.java  | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
index 2e5cbdf2..fdce7e13 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
@@ -77,8 +77,13 @@ public class UploadedSingle implements Initializable {
    * @param resources
    */
   public void initialize(URL location, ResourceBundle resources) {
+    refresh();
+  }
+
+  public void refresh(){
+    uploadContainer.getChildren().clear();
     List<File> files = App.ex.getUploadedFiles();
-    int maxPerPage = Math.min(files.size(), 50);
+    int maxPerPage = Math.min(files.size(), 25);
     for (int i = 0; i < maxPerPage; i ++){
       //A container for image and text
       HBox imageContainer = new HBox();
@@ -342,9 +347,18 @@ public class UploadedSingle implements Initializable {
         for (Album album : chosenAlbums) {
           albumService.addImage(album, image);
         }
+        //Removes uploaded file if it was uploaded from data exchange
+        App.ex.getUploadedFiles().remove(file);
       });
     }
-    App.setRoot("main");
+    //All files was uploaded
+    if (App.ex.getUploadedFiles().size() == 0) {
+      App.setRoot("main");
+    }
+    else {
+      //Refresh page with remaining images
+      refresh();
+    }
   }
 
   /***
-- 
GitLab


From 2b193e708a8b3cac0a5b80c18f5956000b06920f Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 12:28:06 +0200
Subject: [PATCH 11/28] changes file name and small buxfixes

---
 .../IDATT1002/controllers/UploadedSingle.html |   2 +-
 log/logfile.log                               | 904 +++++++++++++++---
 .../IDATT1002/controllers/DataExchange.java   |   1 -
 .../NTNU/IDATT1002/controllers/Upload.java    |   8 +-
 ...{UploadedSingle.java => UploadImages.java} |  53 +-
 ...ploaded_single.fxml => upload_images.fxml} |   2 +-
 6 files changed, 814 insertions(+), 156 deletions(-)
 rename src/main/java/NTNU/IDATT1002/controllers/{UploadedSingle.java => UploadImages.java} (86%)
 rename src/main/resources/NTNU/IDATT1002/{uploaded_single.fxml => upload_images.fxml} (98%)

diff --git a/javadoc/NTNU/IDATT1002/controllers/UploadedSingle.html b/javadoc/NTNU/IDATT1002/controllers/UploadedSingle.html
index 38271fad..272d6088 100644
--- a/javadoc/NTNU/IDATT1002/controllers/UploadedSingle.html
+++ b/javadoc/NTNU/IDATT1002/controllers/UploadedSingle.html
@@ -124,7 +124,7 @@ $('.navPadding').css('padding-top', $('.fixedNav').css("height"));
 <li>java.lang.Object</li>
 <li>
 <ul class="inheritance">
-<li>NTNU.IDATT1002.controllers.UploadedSingle</li>
+<li>NTNU.IDATT1002.controllers.UploadImages</li>
 </ul>
 </li>
 </ul>
diff --git a/log/logfile.log b/log/logfile.log
index 0dd90a7b..b26abbbe 100644
--- a/log/logfile.log
+++ b/log/logfile.log
@@ -4,123 +4,123 @@ INFO  org.hibernate.jpa.internal.util.LogHelper: HHH000204: Processing Persisten
 	name: ImageApplication
 	...]
 INFO  org.hibernate.annotations.common.Version: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@31acde8e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@31acde8e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@31acde8e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@255dc16f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@13655025
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@4a10662
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@3d17a8c6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@3d17a8c6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@3d17a8c6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@62201c61
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@62201c61
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@62201c61
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@78480b40
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@78480b40
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@78480b40
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@1e4f3d72
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@1e4f3d72
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@1e4f3d72
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@2116331d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@2116331d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@2116331d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@66dd2371
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@66dd2371
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@66dd2371
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@5d04f340
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@5d04f340
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@5d04f340
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@2b1d8ec0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@2b1d8ec0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@6ae51965
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@6ae51965
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@2d93ee97
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@2d93ee97
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@4e88d3e3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@59757fc4
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@6100e9ed
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@6100e9ed
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@790b7021
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@790b7021
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@67d473e1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@67d473e1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@59c7e38d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@59c7e38d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@123ab848
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@123ab848
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@1662b444
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@1662b444
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@cf133b2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@cf133b2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@2300b068
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@2300b068
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@6dd07598
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@6dd07598
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@771b6297
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@771b6297
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@13d2b5e0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@13d2b5e0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@3d77ab42
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@3d77ab42
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@3d77ab42
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@16ec60f8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@68d5abd7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@68d5abd7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@68d5abd7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@502c4f70
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@2e15570f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@2e15570f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@21facc9c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@21facc9c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@38906661
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@38906661
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@c1a48ab
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@c1a48ab
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@71a0ba0e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@71a0ba0e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@3c3f03f3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@46e357c3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@46e357c3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@46e357c3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@6fb3d67e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@6fb3d67e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@6fb3d67e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@6c81f9a7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@4f800401
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@66b14357
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@66b14357
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@66b14357
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@50c4e4bf
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@50c4e4bf
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@50c4e4bf
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@1354f2ec
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@31c4b0de
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@723e6a60
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@723e6a60
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@21433ae2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@507763ac
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@507763ac
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@5a33d23a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@5a33d23a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@5f2bb6b0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@780c7b52
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@2781f641
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@2c6ab071
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@2c6ab071
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@51ecea85
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@135c9270
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@68988f19
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@21dbbeff
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@17d5c083
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@60ed0f1b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@4ca1a458
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@3071d775
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@1952bac6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@1952bac6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@1952bac6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@5e275a03
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@5e6c36e8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@46985775
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@52eb545e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@52eb545e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@52eb545e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@18b2d4ce
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@18b2d4ce
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@18b2d4ce
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@65a07fa8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@65a07fa8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@65a07fa8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@50b1539d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@50b1539d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@50b1539d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@4a8587ab
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@4a8587ab
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@4a8587ab
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@4790472e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@4790472e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@4790472e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@3eb778ef
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@3eb778ef
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@3eb778ef
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@2a8166b1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@2a8166b1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@690f1f31
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@690f1f31
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@33afd6a2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@33afd6a2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@64809b4a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@1bf5c995
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@7cf3a2a0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@7cf3a2a0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@78b60726
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@78b60726
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@7a22fd31
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@7a22fd31
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@1b122c75
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@1b122c75
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@682961ff
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@682961ff
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@12b32fed
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@12b32fed
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@794a45ed
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@794a45ed
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@3580d27b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@3580d27b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@1dc72fe5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@1dc72fe5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@4accfe59
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@4accfe59
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@61f81fa9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@61f81fa9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@7738f48a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@7738f48a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@7738f48a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@4bb94192
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@6789e2de
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@6789e2de
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@6789e2de
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@1019c846
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@49241245
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@49241245
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@1070fda3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@1070fda3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@4774425b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@4774425b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@56eb9c6e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@56eb9c6e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@70258a57
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@70258a57
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@5dd4da85
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@197c21b9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@197c21b9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@197c21b9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@2d13fa58
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@2d13fa58
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@2d13fa58
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@23fab4fe
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@40d932a9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@383400ae
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@383400ae
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@383400ae
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@71bf4521
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@71bf4521
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@71bf4521
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@20c5b465
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@58278316
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@29ec60be
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@29ec60be
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@193bb722
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@42b7aa4b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@42b7aa4b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@2b459cd0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@2b459cd0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@52e757b2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@1dc280b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@447d8506
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@111c3e11
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@111c3e11
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@410ab0d1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@5b8bbbc3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@68171589
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@6ee52093
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@7afd89a6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@7cae7099
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@2cc599d8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@6be3d56b
 INFO  org.hibernate.dialect.Dialect: HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
 INFO  org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl: HHH000422: Disabling contextual LOB creation as connection was null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6ad679af] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@3b3bb07f]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@4829c323] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@447d4b48]
 INFO  org.hibernate.validator.internal.util.Version: HV000001: Hibernate Validator null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6ad679af] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@7315397d]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@4829c323] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@7c0f811d]
 INFO  org.hibernate.hql.internal.QueryTranslatorFactoryInitiator: HHH000397: Using ASTQueryTranslatorFactory
 WARN  org.hibernate.orm.connections.pooling: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
 INFO  org.hibernate.orm.connections.pooling: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://mysql.stud.iie.ntnu.no:3306/g_sysutv_14]
@@ -164,6 +164,408 @@ DEBUG org.hibernate.SQL:
         user user0_ 
     where
         user0_.username=?
+DEBUG org.hibernate.SQL: 
+    /* 
+from
+    NTNU.IDATT1002.models.Album */ select
+        album0_.id as id1_0_,
+        album0_.createdAt as createdA2_0_,
+        album0_.description as descript3_0_,
+        album0_.title as title4_0_,
+        album0_.updatedAt as updatedA5_0_,
+        album0_.user_username as user_use6_0_ 
+    from
+        album album0_
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
 DEBUG org.hibernate.SQL: 
     select
         images0_.Album_id as Album_id1_1_0_,
@@ -1245,24 +1647,215 @@ DEBUG org.hibernate.SQL:
     where
         tags0_.Album_id=?
 DEBUG org.hibernate.SQL: 
-    /* Tag.findByName */ select
-        tag0_.tagId as tagId1_10_,
-        tag0_.name as name2_10_ 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
     from
-        tag tag0_ 
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
     where
-        tag0_.name=?
+        images0_.Album_id=?
 DEBUG org.hibernate.SQL: 
-    /* insert NTNU.IDATT1002.models.Tag
-        */ insert 
-        into
-            tag
-            (name) 
-        values
-            (?)
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
 DEBUG org.hibernate.SQL: 
     select
-        last_insert_id()
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
 DEBUG org.hibernate.SQL: 
     select
         next_val as id_val 
@@ -1317,18 +1910,55 @@ DEBUG org.hibernate.SQL:
     select
         last_insert_id()
 DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
+    select
+        next_val as id_val 
+    from
+        hibernate_sequence for update
+            
+DEBUG org.hibernate.SQL: 
+    update
+        hibernate_sequence 
+    set
+        next_val= ? 
+    where
+        next_val=?
+DEBUG org.hibernate.SQL: 
+    select
+        next_val as id_val 
+    from
+        hibernate_sequence for update
+            
+DEBUG org.hibernate.SQL: 
+    update
+        hibernate_sequence 
+    set
+        next_val= ? 
+    where
+        next_val=?
+DEBUG org.hibernate.SQL: 
+    /* insert NTNU.IDATT1002.models.GeoLocation
+        */ insert 
+        into
+            geolocation
+            (latitude, longitude, geoLocationId) 
+        values
+            (?, ?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert NTNU.IDATT1002.models.Metadata
+        */ insert 
         into
-            album_image
-            (Album_id, images_id) 
+            metadata
+            (iso, aperture, camera, filedimension, filesize, filetype, focallength, geolocation_geoLocationId, lens, photodate, shutterspeed, metadataId) 
         values
-            (?, ?)
+            (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
 DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Image.albums */ insert 
+    /* insert NTNU.IDATT1002.models.Image
+        */ insert 
         into
-            image_album
-            (Image_id, albums_id) 
+            image
+            (metadata_metadataId, path, rawImage, uploadedAt, user_username) 
         values
-            (?, ?)
+            (?, ?, ?, ?, ?)
+DEBUG org.hibernate.SQL: 
+    select
+        last_insert_id()
diff --git a/src/main/java/NTNU/IDATT1002/controllers/DataExchange.java b/src/main/java/NTNU/IDATT1002/controllers/DataExchange.java
index b8a4ff04..62aceee9 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/DataExchange.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/DataExchange.java
@@ -72,6 +72,5 @@ public class DataExchange {
     public void setChosenImg(String chosenImg) {
         this.chosenImg = chosenImg;
     }
-
 }
 
diff --git a/src/main/java/NTNU/IDATT1002/controllers/Upload.java b/src/main/java/NTNU/IDATT1002/controllers/Upload.java
index 3048f002..5b324641 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/Upload.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/Upload.java
@@ -103,8 +103,8 @@ public class Upload {
      * If the user has chosen 1 image this method is called
      * @throws IOException
      */
-    private void switchToUploadedSingle() throws IOException {
-        App.setRoot("uploaded_single");
+    private void switchToUploadImages() throws IOException {
+        App.setRoot("upload_images");
     }
 
     /**
@@ -134,7 +134,7 @@ public class Upload {
         if(!list.isEmpty()){
             //Store files in DataExchange
             App.ex.setUploadedFiles(list);
-            switchToUploadedSingle();
+            switchToUploadImages();
         }
     }
 
@@ -188,7 +188,7 @@ public class Upload {
         if(!list.isEmpty()){
             //Stores files to DataExchange
             App.ex.setUploadedFiles(list);
-            switchToUploadedSingle();
+            switchToUploadImages();
         }
     }
 }
diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
similarity index 86%
rename from src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
rename to src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
index fdce7e13..b99a68a8 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadedSingle.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
@@ -48,7 +48,7 @@ import java.util.stream.Collectors;
  *
  * @version 1.0 22.03.2020
  */
-public class UploadedSingle implements Initializable {
+public class UploadImages implements Initializable {
 
   public VBox uploadContainer;
 
@@ -64,7 +64,7 @@ public class UploadedSingle implements Initializable {
   private AlbumService albumService;
   private ImageService imageService;
 
-  public UploadedSingle(){
+  public UploadImages(){
     EntityManager entityManager = App.ex.getEntityManager();
     albumService = new AlbumService(entityManager);
     imageService = new ImageService(entityManager);
@@ -209,7 +209,39 @@ public class UploadedSingle implements Initializable {
 
     MetaDataExtractor metaDataExtractor = new MetaDataExtractor();
     //Histogram histogram = metaDataExtractor.getHistogram(file);
-    TextArea metadata = new TextArea("histogram.getData()");
+    String metadataSting = "";
+    if (!metaDataExtractor.getLens(file).isEmpty()){
+      metadataSting += "Camera: " + metaDataExtractor.getCamera(file) + "\n";
+    }
+    if (!metaDataExtractor.getLens(file).isEmpty()){
+      metadataSting += "Lens: " + metaDataExtractor.getLens(file) + "\n";
+    }
+    if (!metaDataExtractor.getAperture(file).isEmpty()) {
+      metadataSting += "Aperture: " + metaDataExtractor.getAperture(file) + "\n";
+    }
+    if (!metaDataExtractor.getFileDimension(file).isEmpty()) {
+      metadataSting += "File dimensions: " + metaDataExtractor.getFileDimension(file) + "\n";
+    }
+    if (!metaDataExtractor.getFileType(file).isEmpty()) {
+      metadataSting += "File type: " + metaDataExtractor.getFileType(file) + "\n";
+    }
+    if (!metaDataExtractor.getFileSize(file).isEmpty()) {
+      metadataSting += "File size: " + metaDataExtractor.getFileSize(file) + "\n";
+    }
+    if (!metaDataExtractor.getFocalLength(file).isEmpty()) {
+      metadataSting += "Focal length: " + metaDataExtractor.getFocalLength(file) + "\n";
+    }
+    if (!metaDataExtractor.getIso(file).isEmpty()) {
+      metadataSting += "Iso: " + metaDataExtractor.getIso(file) + "\n";
+    }
+    if (!metaDataExtractor.getPhotoDate(file).isEmpty()) {
+      metadataSting += "Date: " + metaDataExtractor.getPhotoDate(file) + "\n";
+    }
+    if (!metaDataExtractor.getShutterSpeed(file).isEmpty()) {
+      metadataSting += "Shutter speed: " + metaDataExtractor.getShutterSpeed(file) + "\n";
+    }
+
+    TextArea metadata = new TextArea(metadataSting);
 
     metadata.setEditable(false);
     metadata.setPrefWidth(500);
@@ -318,12 +350,13 @@ public class UploadedSingle implements Initializable {
   public void upload() throws IOException {
     //List of containers for each selected image
     List<Node> imageContainers = uploadContainer.getChildren().stream()
-            .filter(node -> node instanceof HBox)
+            .filter(child -> child instanceof HBox)
             .collect(Collectors.toList());
 
     for(int i = 0; i < imageContainers.size(); i++){
+      Node imageContainer = imageContainers.get(i);
       //Getting all child nodes and sorts out those with correct id
-      List<Node> childNodes = getAllNodes((Parent) imageContainers.get(i)).stream()
+      List<Node> childNodes = getAllNodes((Parent) imageContainer).stream()
               .filter(n -> n.getId() != null && (n.getId().equals("title") || n.getId().equals("tags") || n.getId().equals("checkbox")))
               .collect(Collectors.toList());
 
@@ -347,18 +380,14 @@ public class UploadedSingle implements Initializable {
         for (Album album : chosenAlbums) {
           albumService.addImage(album, image);
         }
-        //Removes uploaded file if it was uploaded from data exchange
-        App.ex.getUploadedFiles().remove(file);
+        //Removes container if it was uploaded from data exchange
+        uploadContainer.getChildren().remove(imageContainer);
       });
     }
     //All files was uploaded
-    if (App.ex.getUploadedFiles().size() == 0) {
+    if (uploadContainer.getChildren().size() == 1) {
       App.setRoot("main");
     }
-    else {
-      //Refresh page with remaining images
-      refresh();
-    }
   }
 
   /***
diff --git a/src/main/resources/NTNU/IDATT1002/uploaded_single.fxml b/src/main/resources/NTNU/IDATT1002/upload_images.fxml
similarity index 98%
rename from src/main/resources/NTNU/IDATT1002/uploaded_single.fxml
rename to src/main/resources/NTNU/IDATT1002/upload_images.fxml
index 18a537e8..e806e428 100644
--- a/src/main/resources/NTNU/IDATT1002/uploaded_single.fxml
+++ b/src/main/resources/NTNU/IDATT1002/upload_images.fxml
@@ -11,7 +11,7 @@
 <?import javafx.scene.layout.Pane?>
 <?import javafx.scene.layout.VBox?>
 
-<VBox alignment="CENTER" prefHeight="1080.0" prefWidth="1920.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="NTNU.IDATT1002.controllers.UploadedSingle">
+<VBox alignment="CENTER" prefHeight="1080.0" prefWidth="1920.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="NTNU.IDATT1002.controllers.UploadImages">
    <children>
       <HBox alignment="CENTER" minHeight="100.0" prefHeight="100.0" prefWidth="1920.0" spacing="20.0" style="-fx-background-color: #0c0c0c;">
          <children>
-- 
GitLab


From 00e3cc59639bee8caba49ede5529243219a4e585 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 12:34:35 +0200
Subject: [PATCH 12/28] removed comments

---
 src/main/java/NTNU/IDATT1002/controllers/UploadImages.java | 7 -------
 1 file changed, 7 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
index b99a68a8..9797b2cd 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
@@ -267,13 +267,6 @@ public class UploadImages implements Initializable {
     CheckComboBox<Album> checkComboBox = new CheckComboBox<>(options);
     checkComboBox.setId("checkbox");
     checkComboBox.setTitle("Add to albums");
-    /*
-    checkComboBox.getCheckModel().getCheckedItems().addListener(new ListChangeListener<String>() {
-      public void onChanged(ListChangeListener.Change<? extends String> c) {
-        checkComboBox.getCheckModel().getCheckedItems();
-      }
-    });
-     */
     textContainer.getChildren().add(checkComboBox);
   }
 
-- 
GitLab


From 31760be96fc82bfb2138494524e11e0c7a04957e Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 12:52:43 +0200
Subject: [PATCH 13/28] avoided double filtering

---
 log/logfile.log                               | 346 +++++++++---------
 .../IDATT1002/controllers/UploadImages.java   |   8 +-
 .../NTNU/IDATT1002/upload_images.fxml         |   2 +-
 3 files changed, 186 insertions(+), 170 deletions(-)

diff --git a/log/logfile.log b/log/logfile.log
index b26abbbe..30418ea9 100644
--- a/log/logfile.log
+++ b/log/logfile.log
@@ -4,123 +4,123 @@ INFO  org.hibernate.jpa.internal.util.LogHelper: HHH000204: Processing Persisten
 	name: ImageApplication
 	...]
 INFO  org.hibernate.annotations.common.Version: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@1952bac6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@1952bac6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@1952bac6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@5e275a03
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@5e6c36e8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@46985775
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@52eb545e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@52eb545e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@52eb545e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@18b2d4ce
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@18b2d4ce
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@18b2d4ce
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@65a07fa8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@65a07fa8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@65a07fa8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@50b1539d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@50b1539d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@50b1539d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@4a8587ab
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@4a8587ab
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@4a8587ab
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@4790472e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@4790472e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@4790472e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@3eb778ef
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@3eb778ef
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@3eb778ef
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@2a8166b1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@2a8166b1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@690f1f31
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@690f1f31
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@33afd6a2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@33afd6a2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@64809b4a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@1bf5c995
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@7cf3a2a0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@7cf3a2a0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@78b60726
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@78b60726
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@7a22fd31
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@7a22fd31
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@1b122c75
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@1b122c75
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@682961ff
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@682961ff
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@12b32fed
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@12b32fed
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@794a45ed
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@794a45ed
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@3580d27b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@3580d27b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@1dc72fe5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@1dc72fe5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@4accfe59
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@4accfe59
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@61f81fa9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@61f81fa9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@7738f48a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@7738f48a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@7738f48a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@4bb94192
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@6789e2de
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@6789e2de
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@6789e2de
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@1019c846
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@49241245
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@49241245
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@1070fda3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@1070fda3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@4774425b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@4774425b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@56eb9c6e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@56eb9c6e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@70258a57
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@70258a57
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@5dd4da85
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@197c21b9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@197c21b9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@197c21b9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@2d13fa58
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@2d13fa58
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@2d13fa58
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@23fab4fe
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@40d932a9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@383400ae
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@383400ae
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@383400ae
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@71bf4521
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@71bf4521
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@71bf4521
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@20c5b465
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@58278316
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@29ec60be
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@29ec60be
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@193bb722
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@42b7aa4b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@42b7aa4b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@2b459cd0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@2b459cd0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@52e757b2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@1dc280b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@447d8506
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@111c3e11
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@111c3e11
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@410ab0d1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@5b8bbbc3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@68171589
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@6ee52093
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@7afd89a6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@7cae7099
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@2cc599d8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@6be3d56b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@47fb2845
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@47fb2845
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@47fb2845
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@1e2a9ddc
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@1e0a8a67
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@6788155d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@5270cc49
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@5270cc49
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@5270cc49
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@3ca23d64
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@3ca23d64
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@3ca23d64
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@1e80656e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@1e80656e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@1e80656e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@6e989ec0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@6e989ec0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@6e989ec0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@5cf3eea1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@5cf3eea1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@5cf3eea1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3d20e5b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3d20e5b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@3d20e5b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@34fa2906
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@34fa2906
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@34fa2906
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@393b4fc0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@393b4fc0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@a4c7fb1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@a4c7fb1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@1a6839a0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@1a6839a0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@196cd161
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@1a5e6a22
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@3777b643
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@3777b643
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@353c756d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@353c756d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@35953d6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@35953d6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@269a55f3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@269a55f3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@67677b5e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@67677b5e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@19689851
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@19689851
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c6ac5d9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c6ac5d9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@7922a9a0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@7922a9a0
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@67a5bdc
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@67a5bdc
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@4d9ea7e5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@4d9ea7e5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@7594e41b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@7594e41b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@418d986d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@418d986d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@418d986d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@399fb982
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@1fee91fa
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@1fee91fa
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@1fee91fa
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@8ec1a09
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@1f4e29ab
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@1f4e29ab
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@2f6def19
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@2f6def19
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@370961d8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@370961d8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@4e81e506
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@4e81e506
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@3617ee3d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@3617ee3d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@467de465
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@1ca8de35
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@1ca8de35
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@1ca8de35
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@3e7d4095
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@3e7d4095
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@3e7d4095
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@4fb2d2b
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@51639cc5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@3a2835df
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@3a2835df
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@3a2835df
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@656717af
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@656717af
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@656717af
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@2e262df4
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@7d0ed9b4
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@276c6d56
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@276c6d56
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@e7f9e6e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@75e63c87
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@75e63c87
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@22111194
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@22111194
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@496f1b95
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@4fb91a56
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@f0de6b3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@160c8b33
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@160c8b33
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@326d2975
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@7142c251
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@6dd43d59
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@7e3747b8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@254aef8a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@42fdf138
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@e8f22cb
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@4a41be25
 INFO  org.hibernate.dialect.Dialect: HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
 INFO  org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl: HHH000422: Disabling contextual LOB creation as connection was null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@4829c323] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@447d4b48]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6eae2f4d] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@6532a0eb]
 INFO  org.hibernate.validator.internal.util.Version: HV000001: Hibernate Validator null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@4829c323] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@7c0f811d]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6eae2f4d] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@340badf8]
 INFO  org.hibernate.hql.internal.QueryTranslatorFactoryInitiator: HHH000397: Using ASTQueryTranslatorFactory
 WARN  org.hibernate.orm.connections.pooling: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
 INFO  org.hibernate.orm.connections.pooling: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://mysql.stud.iie.ntnu.no:3306/g_sysutv_14]
@@ -164,18 +164,6 @@ DEBUG org.hibernate.SQL:
         user user0_ 
     where
         user0_.username=?
-DEBUG org.hibernate.SQL: 
-    /* 
-from
-    NTNU.IDATT1002.models.Album */ select
-        album0_.id as id1_0_,
-        album0_.createdAt as createdA2_0_,
-        album0_.description as descript3_0_,
-        album0_.title as title4_0_,
-        album0_.updatedAt as updatedA5_0_,
-        album0_.user_username as user_use6_0_ 
-    from
-        album album0_
 DEBUG org.hibernate.SQL: 
     select
         images0_.Album_id as Album_id1_1_0_,
@@ -1856,6 +1844,25 @@ DEBUG org.hibernate.SQL:
             on tags0_.tags_tagId=tag1_.tagId 
     where
         tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    /* Tag.findByName */ select
+        tag0_.tagId as tagId1_10_,
+        tag0_.name as name2_10_ 
+    from
+        tag tag0_ 
+    where
+        tag0_.name=?
+DEBUG org.hibernate.SQL: 
+    /* insert NTNU.IDATT1002.models.Tag
+        */ insert 
+        into
+            tag
+            (name) 
+        values
+            (?)
+DEBUG org.hibernate.SQL: 
+    select
+        last_insert_id()
 DEBUG org.hibernate.SQL: 
     select
         next_val as id_val 
@@ -1910,55 +1917,64 @@ DEBUG org.hibernate.SQL:
     select
         last_insert_id()
 DEBUG org.hibernate.SQL: 
-    select
-        next_val as id_val 
-    from
-        hibernate_sequence for update
-            
+    /* delete collection NTNU.IDATT1002.models.Album.images */ delete 
+        from
+            album_image 
+        where
+            Album_id=?
 DEBUG org.hibernate.SQL: 
-    update
-        hibernate_sequence 
-    set
-        next_val= ? 
-    where
-        next_val=?
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
+        into
+            album_image
+            (Album_id, images_id) 
+        values
+            (?, ?)
 DEBUG org.hibernate.SQL: 
-    select
-        next_val as id_val 
-    from
-        hibernate_sequence for update
-            
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
+        into
+            album_image
+            (Album_id, images_id) 
+        values
+            (?, ?)
 DEBUG org.hibernate.SQL: 
-    update
-        hibernate_sequence 
-    set
-        next_val= ? 
-    where
-        next_val=?
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
+        into
+            album_image
+            (Album_id, images_id) 
+        values
+            (?, ?)
 DEBUG org.hibernate.SQL: 
-    /* insert NTNU.IDATT1002.models.GeoLocation
-        */ insert 
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
         into
-            geolocation
-            (latitude, longitude, geoLocationId) 
+            album_image
+            (Album_id, images_id) 
         values
-            (?, ?, ?)
+            (?, ?)
 DEBUG org.hibernate.SQL: 
-    /* insert NTNU.IDATT1002.models.Metadata
-        */ insert 
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
         into
-            metadata
-            (iso, aperture, camera, filedimension, filesize, filetype, focallength, geolocation_geoLocationId, lens, photodate, shutterspeed, metadataId) 
+            album_image
+            (Album_id, images_id) 
         values
-            (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+            (?, ?)
 DEBUG org.hibernate.SQL: 
-    /* insert NTNU.IDATT1002.models.Image
-        */ insert 
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
         into
-            image
-            (metadata_metadataId, path, rawImage, uploadedAt, user_username) 
+            album_image
+            (Album_id, images_id) 
         values
-            (?, ?, ?, ?, ?)
+            (?, ?)
 DEBUG org.hibernate.SQL: 
-    select
-        last_insert_id()
+    /* insert collection
+        row NTNU.IDATT1002.models.Image.albums */ insert 
+        into
+            image_album
+            (Image_id, albums_id) 
+        values
+            (?, ?)
diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
index 9797b2cd..c114010e 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
@@ -60,6 +60,7 @@ public class UploadImages implements Initializable {
   public Button tbar_upload;
 
   public Button tbar_albums;
+  public VBox root;
 
   private AlbumService albumService;
   private ImageService imageService;
@@ -345,7 +346,6 @@ public class UploadImages implements Initializable {
     List<Node> imageContainers = uploadContainer.getChildren().stream()
             .filter(child -> child instanceof HBox)
             .collect(Collectors.toList());
-
     for(int i = 0; i < imageContainers.size(); i++){
       Node imageContainer = imageContainers.get(i);
       //Getting all child nodes and sorts out those with correct id
@@ -354,9 +354,9 @@ public class UploadImages implements Initializable {
               .collect(Collectors.toList());
 
       //Todo: make title apply to images
-      Node titleField = childNodes.stream().filter(node -> node.getId().equals("title")).collect(Collectors.toList()).get(0);
-      Node tagsField = childNodes.stream().filter(node -> node.getId().equals("tags")).collect(Collectors.toList()).get(0);
-      Node comboBox = childNodes.stream().filter(node -> node.getId().equals("checkbox")).collect(Collectors.toList()).get(0);
+      Node titleField = childNodes.get(0);
+      Node tagsField = childNodes.get(1);
+      Node comboBox = childNodes.get(2);
 
       //List of the albums checked on the dropdown list
       ObservableList<Album> chosenAlbums = ((CheckComboBox<Album>) comboBox).getCheckModel().getCheckedItems();
diff --git a/src/main/resources/NTNU/IDATT1002/upload_images.fxml b/src/main/resources/NTNU/IDATT1002/upload_images.fxml
index e806e428..6e8ceafe 100644
--- a/src/main/resources/NTNU/IDATT1002/upload_images.fxml
+++ b/src/main/resources/NTNU/IDATT1002/upload_images.fxml
@@ -11,7 +11,7 @@
 <?import javafx.scene.layout.Pane?>
 <?import javafx.scene.layout.VBox?>
 
-<VBox alignment="CENTER" prefHeight="1080.0" prefWidth="1920.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="NTNU.IDATT1002.controllers.UploadImages">
+<VBox fx:id="root" alignment="CENTER" prefHeight="1080.0" prefWidth="1920.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="NTNU.IDATT1002.controllers.UploadImages">
    <children>
       <HBox alignment="CENTER" minHeight="100.0" prefHeight="100.0" prefWidth="1920.0" spacing="20.0" style="-fx-background-color: #0c0c0c;">
          <children>
-- 
GitLab


From 80b81d43f16be492dbd934081d9dd4e84fdb4e15 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 12:55:51 +0200
Subject: [PATCH 14/28] removed method for tag splitting

---
 .../java/NTNU/IDATT1002/controllers/UploadImages.java  | 10 ----------
 1 file changed, 10 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
index c114010e..c8b6a1b3 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
@@ -383,16 +383,6 @@ public class UploadImages implements Initializable {
     }
   }
 
-  /***
-   * Method for splitting the tag textField into tags in a list
-   * @param photo_tag
-   * @return list of string
-   */
-  public List<String> tagStringSplit(TextField photo_tag) {
-    String tagTekst = photo_tag.getText();
-    return Arrays.asList(tagTekst.split("(?=#)"));
-  }
-
   public static ArrayList<Node> getAllNodes(Parent root) {
     ArrayList<Node> nodes = new ArrayList<Node>();
     addAllDescendents(root, nodes);
-- 
GitLab


From 1979ce2ea357631212c35d8b8a2d295508f28e8e Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 13:02:43 +0200
Subject: [PATCH 15/28] removed unused methods

---
 .../NTNU/IDATT1002/controllers/ViewAlbum.java | 41 ++-----------------
 1 file changed, 4 insertions(+), 37 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
index 426aa027..875c84d4 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
@@ -9,8 +9,7 @@ import NTNU.IDATT1002.utils.ImageUtil;
 import java.io.File;
 import java.io.IOException;
 import java.net.URL;
-import java.util.Optional;
-import java.util.ResourceBundle;
+import java.util.*;
 import java.util.logging.Logger;
 import javafx.application.HostServices;
 import javafx.event.ActionEvent;
@@ -85,13 +84,13 @@ public class ViewAlbum implements Initializable {
         foundAlbum.ifPresent(album -> {
             currentAlbum = album;
             if (album.getImages().size() > 0) {
-                NTNU.IDATT1002.models.Image titleImage = album.getImages().get(0);
-                Image image = ImageUtil.convertToFXImage(titleImage);
+                List<NTNU.IDATT1002.models.Image> images = album.getImages();
+                Image image = ImageUtil.convertToFXImage(images.get(0));
                 mainPicture.setImage(image);
                 pictureTitleField.setText("LEGG TIL BILDETITTEL HER");
                 pictureTagsField.setText("#LEGG #TIL #TAGS #HER");
                 insertAlbumTextToContainer(album);
-                for (NTNU.IDATT1002.models.Image i : album.getImages()) {
+                for (NTNU.IDATT1002.models.Image i : images) {
                     ImageView iV = new ImageView();
                     iV.setFitHeight(64);
                     iV.setFitWidth(114);
@@ -285,38 +284,6 @@ public class ViewAlbum implements Initializable {
         //write method that opens a pop-up view of the main picture
     }
 
-    public void changeMainPicture1(MouseEvent mouseEvent) {
-        //write method that switches to main picture to be picture 1 in the scrollbar-view
-    }
-
-    public void changeMainPicture2(MouseEvent mouseEvent) {
-        //write method that switches to main picture to be picture 2 in the scrollbar-view
-    }
-
-    public void changeMainPicture3(MouseEvent mouseEvent) {
-        //write method that switches to main picture to be picture 3 in the scrollbar-view
-    }
-
-    public void changeMainPicture4(MouseEvent mouseEvent) {
-        //write method that switches to main picture to be picture 4 in the scrollbar-view
-    }
-
-    public void changeMainPicture5(MouseEvent mouseEvent) {
-        //write method that switches to main picture to be picture 5 in the scrollbar-view
-    }
-
-    public void changeMainPicture6(MouseEvent mouseEvent) {
-        //write method that switches to main picture to be picture 6 in the scrollbar-view
-    }
-
-    public void loadPreviousScrollbarView(ActionEvent actionEvent) {
-        //write method that loads the previous 6 images in the album into the scrollbar-view
-    }
-
-    public void loadNextScrollbarView(ActionEvent actionEvent) {
-        //write method that loads the next 6 images in the album into the scrollbar-view
-    }
-
     /**
      * Retrieve and display album document.
      *
-- 
GitLab


From 60d19e75e7eeaea6428ec0534a50fcae70e7bc09 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 13:18:24 +0200
Subject: [PATCH 16/28] Naming improvement

---
 log/logfile.log                               | 2069 +----------------
 .../NTNU/IDATT1002/controllers/ViewAlbum.java |   25 +-
 .../resources/NTNU/IDATT1002/view_album.fxml  |    4 +-
 3 files changed, 129 insertions(+), 1969 deletions(-)

diff --git a/log/logfile.log b/log/logfile.log
index 30418ea9..f67d3355 100644
--- a/log/logfile.log
+++ b/log/logfile.log
@@ -4,123 +4,123 @@ INFO  org.hibernate.jpa.internal.util.LogHelper: HHH000204: Processing Persisten
 	name: ImageApplication
 	...]
 INFO  org.hibernate.annotations.common.Version: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@47fb2845
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@47fb2845
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@47fb2845
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@1e2a9ddc
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@1e0a8a67
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@6788155d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@5270cc49
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@5270cc49
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@5270cc49
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@3ca23d64
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@3ca23d64
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@3ca23d64
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@1e80656e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@1e80656e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@1e80656e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@6e989ec0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@6e989ec0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@6e989ec0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@5cf3eea1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@5cf3eea1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@5cf3eea1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3d20e5b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@3d20e5b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@3d20e5b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@34fa2906
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@34fa2906
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@34fa2906
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@393b4fc0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@393b4fc0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@a4c7fb1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@a4c7fb1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@1a6839a0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@1a6839a0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@196cd161
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@1a5e6a22
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@3777b643
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@3777b643
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@353c756d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@353c756d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@35953d6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@35953d6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@269a55f3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@269a55f3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@67677b5e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@67677b5e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@19689851
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@19689851
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c6ac5d9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@2c6ac5d9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@7922a9a0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@7922a9a0
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@67a5bdc
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@67a5bdc
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@4d9ea7e5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@4d9ea7e5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@7594e41b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@7594e41b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@418d986d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@418d986d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@418d986d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@399fb982
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@1fee91fa
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@1fee91fa
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@1fee91fa
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@8ec1a09
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@1f4e29ab
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@1f4e29ab
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@2f6def19
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@2f6def19
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@370961d8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@370961d8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@4e81e506
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@4e81e506
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@3617ee3d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@3617ee3d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@467de465
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@1ca8de35
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@1ca8de35
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@1ca8de35
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@3e7d4095
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@3e7d4095
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@3e7d4095
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@4fb2d2b
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@51639cc5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@3a2835df
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@3a2835df
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@3a2835df
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@656717af
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@656717af
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@656717af
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@2e262df4
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@7d0ed9b4
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@276c6d56
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@276c6d56
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@e7f9e6e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@75e63c87
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@75e63c87
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@22111194
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@22111194
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@496f1b95
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@4fb91a56
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@f0de6b3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@160c8b33
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@160c8b33
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@326d2975
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@7142c251
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@6dd43d59
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@7e3747b8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@254aef8a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@42fdf138
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@e8f22cb
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@4a41be25
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@452a37da
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@452a37da
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@452a37da
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@eb7518
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@64f52d5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@1dea1106
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@27e62014
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@27e62014
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@27e62014
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@5e93a58f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@5e93a58f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@5e93a58f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@48f77a16
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@48f77a16
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@48f77a16
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@122ddc8c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@122ddc8c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@122ddc8c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@29639b87
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@29639b87
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@29639b87
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@16aa0407
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@16aa0407
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@16aa0407
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@34c0afc5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@34c0afc5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@34c0afc5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@1106b67c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@1106b67c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@2aa02f8d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@2aa02f8d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@4092c49a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@4092c49a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@83a9f12
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@5aee78e5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@27cda06f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@27cda06f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@23c1decf
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@23c1decf
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@703a8ada
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@703a8ada
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@6406def1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@6406def1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@43c14be9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@43c14be9
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@1997a621
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@1997a621
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@705088be
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@705088be
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@27825564
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@27825564
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@44c738b2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@44c738b2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@c1be41
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@c1be41
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@27dc117e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@27dc117e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@72a2034c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@72a2034c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@72a2034c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@23cbdc0f
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@6acbf547
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@6acbf547
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@6acbf547
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@4f2b8de1
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@13159a55
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@13159a55
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@10dd22a7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@10dd22a7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@367d2662
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@367d2662
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@1e1b009a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@1e1b009a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@b8983e8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@b8983e8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@7223678
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@403674d7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@403674d7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@403674d7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@11d70721
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@11d70721
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@11d70721
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@54135bd5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@40af58e7
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@7180257e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@7180257e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@7180257e
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@5a345a1c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@5a345a1c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@5a345a1c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@55b6cce6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@115a4a89
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@9c2b10a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@9c2b10a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@438165ec
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@4e6cbbc3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@4e6cbbc3
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@5226dea5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@5226dea5
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@1239e1e8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@1c78e459
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@4ab6bad2
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@5b385f73
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@5b385f73
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@23081bf6
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@73cdb88c
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@605436e8
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@4aecf022
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@29589522
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@374f515d
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@766dd22a
+DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@5bad5125
 INFO  org.hibernate.dialect.Dialect: HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
 INFO  org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl: HHH000422: Disabling contextual LOB creation as connection was null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6eae2f4d] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@6532a0eb]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@1c4c2741] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@414c23b5]
 INFO  org.hibernate.validator.internal.util.Version: HV000001: Hibernate Validator null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@6eae2f4d] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@340badf8]
+DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@1c4c2741] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@85ad9ad]
 INFO  org.hibernate.hql.internal.QueryTranslatorFactoryInitiator: HHH000397: Using ASTQueryTranslatorFactory
 WARN  org.hibernate.orm.connections.pooling: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
 INFO  org.hibernate.orm.connections.pooling: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://mysql.stud.iie.ntnu.no:3306/g_sysutv_14]
@@ -137,1844 +137,3 @@ DEBUG org.hibernate.SQL:
         login login0_ 
     where
         login0_.username=?
-DEBUG org.hibernate.SQL: 
-    /* 
-from
-    NTNU.IDATT1002.models.Album */ select
-        album0_.id as id1_0_,
-        album0_.createdAt as createdA2_0_,
-        album0_.description as descript3_0_,
-        album0_.title as title4_0_,
-        album0_.updatedAt as updatedA5_0_,
-        album0_.user_username as user_use6_0_ 
-    from
-        album album0_
-DEBUG org.hibernate.SQL: 
-    select
-        user0_.username as username1_11_0_,
-        user0_.birthDate as birthDat2_11_0_,
-        user0_.callingCode as callingC3_11_0_,
-        user0_.email as email4_11_0_,
-        user0_.firstName as firstNam5_11_0_,
-        user0_.isActive as isActive6_11_0_,
-        user0_.isAdmin as isAdmin7_11_0_,
-        user0_.lastName as lastName8_11_0_,
-        user0_.phoneNumber as phoneNum9_11_0_ 
-    from
-        user user0_ 
-    where
-        user0_.username=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    /* Tag.findByName */ select
-        tag0_.tagId as tagId1_10_,
-        tag0_.name as name2_10_ 
-    from
-        tag tag0_ 
-    where
-        tag0_.name=?
-DEBUG org.hibernate.SQL: 
-    /* insert NTNU.IDATT1002.models.Tag
-        */ insert 
-        into
-            tag
-            (name) 
-        values
-            (?)
-DEBUG org.hibernate.SQL: 
-    select
-        last_insert_id()
-DEBUG org.hibernate.SQL: 
-    select
-        next_val as id_val 
-    from
-        hibernate_sequence for update
-            
-DEBUG org.hibernate.SQL: 
-    update
-        hibernate_sequence 
-    set
-        next_val= ? 
-    where
-        next_val=?
-DEBUG org.hibernate.SQL: 
-    select
-        next_val as id_val 
-    from
-        hibernate_sequence for update
-            
-DEBUG org.hibernate.SQL: 
-    update
-        hibernate_sequence 
-    set
-        next_val= ? 
-    where
-        next_val=?
-DEBUG org.hibernate.SQL: 
-    /* insert NTNU.IDATT1002.models.GeoLocation
-        */ insert 
-        into
-            geolocation
-            (latitude, longitude, geoLocationId) 
-        values
-            (?, ?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert NTNU.IDATT1002.models.Metadata
-        */ insert 
-        into
-            metadata
-            (iso, aperture, camera, filedimension, filesize, filetype, focallength, geolocation_geoLocationId, lens, photodate, shutterspeed, metadataId) 
-        values
-            (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert NTNU.IDATT1002.models.Image
-        */ insert 
-        into
-            image
-            (metadata_metadataId, path, rawImage, uploadedAt, user_username) 
-        values
-            (?, ?, ?, ?, ?)
-DEBUG org.hibernate.SQL: 
-    select
-        last_insert_id()
-DEBUG org.hibernate.SQL: 
-    /* delete collection NTNU.IDATT1002.models.Album.images */ delete 
-        from
-            album_image 
-        where
-            Album_id=?
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Image.albums */ insert 
-        into
-            image_album
-            (Image_id, albums_id) 
-        values
-            (?, ?)
diff --git a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
index 875c84d4..9cb06724 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
@@ -55,13 +55,13 @@ public class ViewAlbum implements Initializable {
     public Button tbar_albums;
     public Pane metadataPane;
     public Button createAlbumPdf;
-    public ImageView mainPicture;
+    public ImageView mainImageContainer;
     public Text pictureTitleField;
     public Text pictureTagsField;
 
     @FXML
     public VBox albumTextContainer;
-    public HBox albumImages;
+    public HBox albumImagesContainer;
 
     private AlbumService albumService;
     private Album currentAlbum;
@@ -83,21 +83,22 @@ public class ViewAlbum implements Initializable {
         Optional<Album> foundAlbum = albumService.getAlbumById(currentAlbumId);
         foundAlbum.ifPresent(album -> {
             currentAlbum = album;
+            //If album has an image
             if (album.getImages().size() > 0) {
-                List<NTNU.IDATT1002.models.Image> images = album.getImages();
-                Image image = ImageUtil.convertToFXImage(images.get(0));
-                mainPicture.setImage(image);
-                pictureTitleField.setText("LEGG TIL BILDETITTEL HER");
-                pictureTagsField.setText("#LEGG #TIL #TAGS #HER");
+                List<NTNU.IDATT1002.models.Image> albumImages = album.getImages();
+                NTNU.IDATT1002.models.Image mainImage = albumImages.get(0);
+                mainImageContainer.setImage(ImageUtil.convertToFXImage(mainImage));
+                pictureTitleField.setText("ADD IMAGE TITLE");
+                pictureTagsField.setText("ADD IMAGE TAGS");
                 insertAlbumTextToContainer(album);
-                for (NTNU.IDATT1002.models.Image i : images) {
+                for (NTNU.IDATT1002.models.Image image : albumImages) {
                     ImageView iV = new ImageView();
                     iV.setFitHeight(64);
                     iV.setFitWidth(114);
                     iV.setPreserveRatio(true);
-                    iV.setId(i.getId().toString());
-                    iV.setImage(ImageUtil.convertToFXImage(i));
-                    albumImages.getChildren().add(iV);
+                    iV.setId(image.getId().toString());
+                    iV.setImage(ImageUtil.convertToFXImage(image));
+                    albumImagesContainer.getChildren().add(iV);
                     iV.setOnMouseClicked(new EventHandler<MouseEvent>() {
                         @Override
                         public void handle(MouseEvent mouseEvent) {
@@ -122,7 +123,7 @@ public class ViewAlbum implements Initializable {
             Optional<NTNU.IDATT1002.models.Image> newImage = currentAlbum.getImages().stream().filter(img -> img.getId().equals(clickedImageId)).findFirst();
             newImage.ifPresent(img -> {
                 Image image = ImageUtil.convertToFXImage(img);
-                mainPicture.setImage(image);
+                mainImageContainer.setImage(image);
             });
         }
     }
diff --git a/src/main/resources/NTNU/IDATT1002/view_album.fxml b/src/main/resources/NTNU/IDATT1002/view_album.fxml
index 962d4a82..df7e7984 100644
--- a/src/main/resources/NTNU/IDATT1002/view_album.fxml
+++ b/src/main/resources/NTNU/IDATT1002/view_album.fxml
@@ -67,14 +67,14 @@
                               <Font size="18.0" />
                            </font>
                         </Text>
-                        <ImageView fx:id="mainPicture" fitWidth="840.0" onMouseClicked="#openPopUpPicture" pickOnBounds="true" preserveRatio="true" style="-fx-max-width: 840" styleClass="viewAlbumImage">
+                        <ImageView fx:id="mainImageContainer" fitWidth="840.0" onMouseClicked="#openPopUpPicture" pickOnBounds="true" preserveRatio="true" style="-fx-max-width: 840" styleClass="viewAlbumImage">
                            <image>
                               <Image url="@../../Images/placeholder-1920x1080.png" />
                            </image>
                         </ImageView>
                         <ScrollPane hbarPolicy="ALWAYS" maxHeight="100.0" prefHeight="110.0" prefWidth="839.0" styleClass="scroll-pane" stylesheets="@style.css" vbarPolicy="NEVER" vmax="0.0" vvalue="1.0" VBox.vgrow="NEVER">
                            <content>
-                              <HBox fx:id="albumImages" alignment="CENTER" maxHeight="100.0" prefHeight="85.0" prefWidth="858.0" spacing="10.0" styleClass="scrollHbox" stylesheets="@style.css">
+                              <HBox fx:id="albumImagesContainer" alignment="CENTER" maxHeight="100.0" prefHeight="85.0" prefWidth="858.0" spacing="10.0" styleClass="scrollHbox" stylesheets="@style.css">
                               </HBox>
                            </content>
                         </ScrollPane>
-- 
GitLab


From 63be5bbb2d92accbaad2a7b3a665f50499ea1d80 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 13:25:49 +0200
Subject: [PATCH 17/28] deleted addImage content until update function is made

---
 src/main/java/NTNU/IDATT1002/service/AlbumService.java | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/service/AlbumService.java b/src/main/java/NTNU/IDATT1002/service/AlbumService.java
index ce706928..aa6caa6f 100644
--- a/src/main/java/NTNU/IDATT1002/service/AlbumService.java
+++ b/src/main/java/NTNU/IDATT1002/service/AlbumService.java
@@ -74,10 +74,13 @@ public class AlbumService {
         return albumRepository.save(album);
     }
 
-    //Todo: made this as a temporary method to test upload class. Check if this is correct usage
     public Optional<Album> addImage(Album album, Image image){
+        /*
         album.addImage(image);
-        return albumRepository.save(album);
+        return albumRepository.update(album);
+         */
+        //TODO: make update method in AbstractRepository then remove commenting
+        return Optional.empty();
     }
 
     /**
-- 
GitLab


From 7b58f599f55198ebd55ddbf09404b92e521825ba Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 13:41:23 +0200
Subject: [PATCH 18/28] removed uploaded multiple controller and fxml file

---
 .../NTNU/IDATT1002/controllers/Upload.java    |  12 --
 .../controllers/UploadedMultiple.java         | 119 -----------
 .../NTNU/IDATT1002/uploaded_multiple.fxml     | 185 ------------------
 3 files changed, 316 deletions(-)
 delete mode 100644 src/main/java/NTNU/IDATT1002/controllers/UploadedMultiple.java
 delete mode 100644 src/main/resources/NTNU/IDATT1002/uploaded_multiple.fxml

diff --git a/src/main/java/NTNU/IDATT1002/controllers/Upload.java b/src/main/java/NTNU/IDATT1002/controllers/Upload.java
index 5b324641..8f51a659 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/Upload.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/Upload.java
@@ -107,18 +107,6 @@ public class Upload {
         App.setRoot("upload_images");
     }
 
-    /**
-     * Method that changs scene to Uploaded Multiple page
-     * If the user has chosen multiple images this method is called
-     * @throws IOException
-     */
-    private void switchToUploadedMultiple() throws IOException {
-        App.setRoot("uploaded_multiple");
-    }
-
-
-
-
     /**
      * Method that opens file browser with an image filter
      * The user will choose what files to upload
diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadedMultiple.java b/src/main/java/NTNU/IDATT1002/controllers/UploadedMultiple.java
deleted file mode 100644
index 9fdbacf2..00000000
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadedMultiple.java
+++ /dev/null
@@ -1,119 +0,0 @@
-package NTNU.IDATT1002.controllers;
-
-import NTNU.IDATT1002.App;
-import javafx.event.ActionEvent;
-import javafx.scene.control.Button;
-import javafx.scene.control.TextArea;
-import javafx.scene.control.TextField;
-import javafx.scene.image.ImageView;
-import javafx.scene.input.MouseEvent;
-
-import java.io.IOException;
-
-/**
- * Controls the buttons and changeable elements on upload_multiple.fxml,
- * a page where you add descriptions to your selected images
- * @version 1.0 22.03.2020
- */
-public class UploadedMultiple {
-
-
-    public ImageView tbar_logo;
-    public TextField tbar_search;
-    public Button tbar_searchBtn;
-    public Button tbar_explore;
-    public Button tbar_map;
-    public Button tbar_upload;
-
-    public TextField photo_title;
-    public TextField photo_tag;
-    public TextArea photo_desc;
-    public ImageView photo_image;
-
-    public TextField photo_title2;
-    public TextField photo_tag2;
-    public TextArea photo_desc2;
-    public ImageView photo_image2;
-
-    public TextField photo_title3;
-    public TextField photo_tag3;
-    public TextArea photo_desc3;
-    public ImageView photo_image3;
-
-    public TextField photo_title4;
-    public TextField photo_tag4;
-    public TextArea photo_desc4;
-    public ImageView photo_image4;
-
-    public Button acceptBtn;
-    public Button tbar_albums;
-
-    /**
-     * Method that changes scene to Main page
-     * @param mouseEvent
-     * @throws IOException
-     */
-    public void switchToMain(MouseEvent mouseEvent) throws IOException {
-        App.setRoot("main");
-    }
-
-    /**
-     * Method that changes scene to Search page. It reads the value of the search
-     * field and if not empty it is passed to dataexchange
-     * @param actionEvent
-     * @throws IOException
-     */
-    public void switchToSearch(ActionEvent actionEvent) throws IOException {
-        if (!tbar_search.getText().isEmpty()){
-            App.ex.setSearchField(tbar_search.getText());
-        }
-        App.setRoot("search");
-    }
-
-    /**
-     * Method that changes scene to Explore page
-     * @param actionEvent
-     * @throws IOException
-     */
-    public void switchToExplore(ActionEvent actionEvent) throws IOException {
-        App.setRoot("explore");
-    }
-
-    /**
-     * Method that changes scene to Albums page
-     * @param actionEvent
-     * @throws IOException
-     */
-    public void switchToAlbums(ActionEvent actionEvent) throws IOException {
-        App.setRoot("explore_albums");
-    }
-
-    /**
-     * Method that changes scene to Map page
-     * @param actionEvent
-     * @throws IOException
-     */
-    public void switchToMap(ActionEvent actionEvent) throws IOException {
-        App.setRoot("map");
-    }
-
-    /**
-     * Method that changes scene to Upload page
-     * @param actionEvent
-     * @throws IOException
-     */
-    public void switchToUpload(ActionEvent actionEvent) throws IOException {
-        App.setRoot("upload");
-    }
-
-    /**
-     * Method for uploading several images to database with title, tags and description
-     * Image itself is not stored but URL is
-     * @param actionEvent
-     * @throws IOException
-     */
-    public void uploadMultiple(ActionEvent actionEvent) throws IOException {
-        //TODO: write method to accept and upload the photo with chosen settings, titles..
-        App.setRoot("main");
-    }
-}
diff --git a/src/main/resources/NTNU/IDATT1002/uploaded_multiple.fxml b/src/main/resources/NTNU/IDATT1002/uploaded_multiple.fxml
deleted file mode 100644
index 34a3c5d0..00000000
--- a/src/main/resources/NTNU/IDATT1002/uploaded_multiple.fxml
+++ /dev/null
@@ -1,185 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<?import javafx.scene.control.Button?>
-<?import javafx.scene.control.ScrollPane?>
-<?import javafx.scene.control.TextArea?>
-<?import javafx.scene.control.TextField?>
-<?import javafx.scene.image.Image?>
-<?import javafx.scene.image.ImageView?>
-<?import javafx.scene.layout.AnchorPane?>
-<?import javafx.scene.layout.HBox?>
-<?import javafx.scene.layout.Pane?>
-<?import javafx.scene.layout.VBox?>
-<?import javafx.scene.text.Font?>
-<?import javafx.scene.text.Text?>
-
-<AnchorPane prefHeight="1080.0" prefWidth="1920.0" xmlns="http://javafx.com/javafx" xmlns:fx="http://javafx.com/fxml" fx:controller="NTNU.IDATT1002.controllers.UploadedMultiple">
-    <children>
-        <VBox prefHeight="1080.0" prefWidth="1920.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
-            <children>
-            <HBox alignment="CENTER" minHeight="100.0" prefHeight="100.0" prefWidth="1920.0" spacing="20.0" style="-fx-background-color: #0c0c0c;">
-               <children>
-                  <ImageView fx:id="tbar_logo" fitHeight="69.0" fitWidth="153.0" onMouseClicked="#switchToMain" pickOnBounds="true" preserveRatio="true">
-                     <image>
-                        <Image url="@../../Images/PlaceholderLogo.png" />
-                     </image>
-                  </ImageView>
-                  <Pane prefHeight="100.0" prefWidth="343.0" />
-                  <TextField fx:id="tbar_search" prefHeight="25.0" prefWidth="358.0" promptText="Search: Tags, Albums, Metadata, etc..." />
-                  <Button fx:id="tbar_searchBtn" mnemonicParsing="false" onAction="#switchToSearch" text="SEARCH" />
-                  <Button fx:id="tbar_explore" mnemonicParsing="false" onAction="#switchToExplore" text="EXPLORE" />
-                  <Button fx:id="tbar_albums" mnemonicParsing="false" onAction="#switchToAlbums" text="ALBUMS" />
-                  <Button fx:id="tbar_map" mnemonicParsing="false" onAction="#switchToMap" text="MAP" />
-                  <Pane prefHeight="100.0" prefWidth="174.0" />
-                  <Button fx:id="tbar_upload" mnemonicParsing="false" onAction="#switchToUpload" prefHeight="25.0" prefWidth="114.0" text="UPLOAD" />
-               </children>
-            </HBox>
-                <HBox alignment="CENTER" prefHeight="982.0" prefWidth="1920.0">
-                    <children>
-                  <ScrollPane hbarPolicy="NEVER" prefHeight="1080.0" prefWidth="1920.0" HBox.hgrow="ALWAYS">
-                    <content>
-                      <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="2100.0" prefWidth="1920.0" style="-fx-background-color: #999999;">
-                           <children>
-                                    <Pane prefHeight="981.0" prefWidth="1932.0" style="-fx-background-color: #999999;">
-                                        <children>
-                                            <Text layoutX="238.0" layoutY="142.0" strokeType="OUTSIDE" strokeWidth="0.0" text="ALBUMTITLE:">
-                                                <font>
-                                                    <Font name="System Bold" size="36.0" />
-                                                </font>
-                                            </Text>
-                                            <TextField layoutX="486.0" layoutY="110.0" prefHeight="40.0" prefWidth="488.0" promptText="Insert title here" />
-                                            <Text layoutX="238.0" layoutY="182.0" strokeType="OUTSIDE" strokeWidth="0.0" text="ALBUMTAGS:">
-                                                <font>
-                                                    <Font name="System Bold" size="24.0" />
-                                                </font>
-                                            </Text>
-                                            <TextField layoutX="411.0" layoutY="157.0" prefHeight="32.0" prefWidth="564.0" promptText="#Blue, #water, #summer, etc..." />
-                                            <Text layoutX="239.0" layoutY="224.0" strokeType="OUTSIDE" strokeWidth="0.0" text="ALBUMDESCRIPTION:">
-                                                <font>
-                                                    <Font name="System Bold" size="24.0" />
-                                                </font>
-                                            </Text>
-                                            <TextArea layoutX="238.0" layoutY="239.0" prefHeight="140.0" prefWidth="739.0" promptText="Insert description here" />
-                                            <Text layoutX="1002.0" layoutY="138.0" strokeType="OUTSIDE" strokeWidth="0.0" text="INCLUDED METADATA:">
-                                                <font>
-                                                    <Font name="System Bold" size="24.0" />
-                                                </font>
-                                            </Text>
-                                            <Pane layoutX="1002.0" layoutY="147.0" prefHeight="232.0" prefWidth="684.0" style="-fx-background-color: #ffffff;" />
-                                            <Text layoutX="868.0" layoutY="477.0" strokeType="OUTSIDE" strokeWidth="0.0" text="IMAGES:">
-                                                <font>
-                                                    <Font name="System Bold" size="36.0" />
-                                                </font>
-                                            </Text>
-                                            <Text layoutX="873.0" layoutY="581.0" strokeType="OUTSIDE" strokeWidth="0.0" text="TITLE:">
-                                                <font>
-                                                    <Font name="System Bold" size="36.0" />
-                                                </font>
-                                            </Text>
-                                            <Text layoutX="873.0" layoutY="655.0" strokeType="OUTSIDE" strokeWidth="0.0" text="TAGS:">
-                                                <font>
-                                                    <Font name="System Bold" size="24.0" />
-                                                </font>
-                                            </Text>
-                                            <Text layoutX="873.0" layoutY="719.0" strokeType="OUTSIDE" strokeWidth="0.0" text="DESCRIPTION:">
-                                                <font>
-                                                    <Font name="System Bold" size="24.0" />
-                                                </font>
-                                            </Text>
-                                            <TextField fx:id="photo_title" layoutX="1002.0" layoutY="552.0" prefHeight="32.0" prefWidth="689.0" promptText="Insert title here" />
-                                            <TextField fx:id="photo_tag" layoutX="963.0" layoutY="630.0" prefHeight="32.0" prefWidth="728.0" promptText="#Blue, #water, #summer, etc..." />
-                                            <TextArea fx:id="photo_desc" layoutX="872.0" layoutY="734.0" prefHeight="140.0" prefWidth="822.0" promptText="Insert description here" />
-                                            <ImageView fx:id="photo_image" fitHeight="325.0" fitWidth="608.0" layoutX="238.0" layoutY="549.0" pickOnBounds="true" preserveRatio="true">
-                                                <image>
-                                                    <Image url="@../../Images/placeholder-1920x1080.png" /> <!-- This is the URL to the image in question, needs to change in accordance with the current uploaded picture-->
-                                                </image>
-                                            </ImageView>
-
-                                    <Text layoutX="870.0" layoutY="943.0" strokeType="OUTSIDE" strokeWidth="0.0" text="TITLE:">
-                                       <font>
-                                          <Font name="System Bold" size="36.0" />
-                                       </font>
-                                    </Text>
-                                    <Text layoutX="870.0" layoutY="1017.0" strokeType="OUTSIDE" strokeWidth="0.0" text="TAGS:">
-                                       <font>
-                                          <Font name="System Bold" size="24.0" />
-                                       </font>
-                                    </Text>
-                                    <Text layoutX="870.0" layoutY="1081.0" strokeType="OUTSIDE" strokeWidth="0.0" text="DESCRIPTION:">
-                                       <font>
-                                          <Font name="System Bold" size="24.0" />
-                                       </font>
-                                    </Text>
-                                    <TextField fx:id="photo_title2" layoutX="1002.0" layoutY="914.0" prefHeight="32.0" prefWidth="689.0" promptText="Insert title here" />
-                                    <TextField fx:id="photo_tag2" layoutX="963.0" layoutY="992.0" prefHeight="32.0" prefWidth="728.0" promptText="#Blue, #water, #summer, etc..." />
-                                    <TextArea fx:id="photo_desc2" layoutX="872.0" layoutY="1096.0" prefHeight="140.0" prefWidth="822.0" promptText="Insert description here" />
-                                    <ImageView fx:id="photo_image2" fitHeight="325.0" fitWidth="608.0" layoutX="238.0" layoutY="911.0" pickOnBounds="true" preserveRatio="true">
-                                       <image>
-                                          <Image url="@../../Images/placeholder-1920x1080.png" />
-                                       </image>
-                                    </ImageView>
-
-                                            <Text layoutX="873.0" layoutY="1305.0" strokeType="OUTSIDE" strokeWidth="0.0" text="TITLE:">
-                                                <font>
-                                                    <Font name="System Bold" size="36.0" />
-                                                </font>
-                                            </Text>
-                                            <Text layoutX="873.0" layoutY="1379.0" strokeType="OUTSIDE" strokeWidth="0.0" text="TAGS:">
-                                                <font>
-                                                    <Font name="System Bold" size="24.0" />
-                                                </font>
-                                            </Text>
-                                            <Text layoutX="873.0" layoutY="1443.0" strokeType="OUTSIDE" strokeWidth="0.0" text="DESCRIPTION:">
-                                                <font>
-                                                    <Font name="System Bold" size="24.0" />
-                                                </font>
-                                            </Text>
-                                            <TextField fx:id="photo_title3" layoutX="1002.0" layoutY="1276.0" prefHeight="32.0" prefWidth="689.0" promptText="Insert title here" />
-                                            <TextField fx:id="photo_tag3" layoutX="963.0" layoutY="1354.0" prefHeight="32.0" prefWidth="728.0" promptText="#Blue, #water, #summer, etc..." />
-                                            <TextArea fx:id="photo_desc3" layoutX="872.0" layoutY="1458.0" prefHeight="140.0" prefWidth="822.0" promptText="Insert description here" />
-                                            <ImageView fx:id="photo_image3" fitHeight="325.0" fitWidth="608.0" layoutX="238.0" layoutY="1273.0" pickOnBounds="true" preserveRatio="true">
-                                                <image>
-                                                    <Image url="@../../Images/placeholder-1920x1080.png" /> <!-- This is the URL to the image in question, needs to change in accordance with the current uploaded picture-->
-                                                </image>
-                                            </ImageView>
-
-                                            <Text layoutX="870.0" layoutY="1667.0" strokeType="OUTSIDE" strokeWidth="0.0" text="TITLE:">
-                                                <font>
-                                                    <Font name="System Bold" size="36.0" />
-                                                </font>
-                                            </Text>
-                                            <Text layoutX="870.0" layoutY="1741.0" strokeType="OUTSIDE" strokeWidth="0.0" text="TAGS:">
-                                                <font>
-                                                    <Font name="System Bold" size="24.0" />
-                                                </font>
-                                            </Text>
-                                            <Text layoutX="870.0" layoutY="1805.0" strokeType="OUTSIDE" strokeWidth="0.0" text="DESCRIPTION:">
-                                                <font>
-                                                    <Font name="System Bold" size="24.0" />
-                                                </font>
-                                            </Text>
-                                            <TextField fx:id="photo_title4" layoutX="1002.0" layoutY="1638.0" prefHeight="32.0" prefWidth="689.0" promptText="Insert title here" />
-                                            <TextField fx:id="photo_tag4" layoutX="963.0" layoutY="1716.0" prefHeight="32.0" prefWidth="728.0" promptText="#Blue, #water, #summer, etc..." />
-                                            <TextArea fx:id="photo_desc4" layoutX="872.0" layoutY="1820.0" prefHeight="140.0" prefWidth="822.0" promptText="Insert description here" />
-                                            <ImageView fx:id="photo_image4" fitHeight="325.0" fitWidth="608.0" layoutX="238.0" layoutY="1635.0" pickOnBounds="true" preserveRatio="true">
-                                                <image>
-                                                    <Image url="@../../Images/placeholder-1920x1080.png" />
-                                                </image>
-                                            </ImageView>
-                                    <Button fx:id="acceptBtn" layoutX="880.0" layoutY="2000.0" mnemonicParsing="false" onAction="#uploadMultiple" text="ACCEPT">
-                                       <font>
-                                          <Font name="System Bold" size="24.0" />
-                                       </font>
-                                    </Button>
-                                        </children>
-                                    </Pane>
-                           </children>
-                        </AnchorPane>
-                    </content>
-                  </ScrollPane>
-                    </children>
-                </HBox>
-            </children>
-        </VBox>
-    </children>
-</AnchorPane>
-- 
GitLab


From fc6cda48558d255874c5eeaa8fc6c69f7ea7e3ca Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 13:56:58 +0200
Subject: [PATCH 19/28] made update method

---
 .../repository/AbstractRepository.java        | 29 +++++++++++++++++++
 .../NTNU/IDATT1002/repository/Repository.java |  8 +++++
 .../NTNU/IDATT1002/service/AlbumService.java  |  4 ---
 3 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/repository/AbstractRepository.java b/src/main/java/NTNU/IDATT1002/repository/AbstractRepository.java
index 599cc772..ee20d30b 100644
--- a/src/main/java/NTNU/IDATT1002/repository/AbstractRepository.java
+++ b/src/main/java/NTNU/IDATT1002/repository/AbstractRepository.java
@@ -67,6 +67,24 @@ abstract class AbstractRepository<T, ID> implements Repository<T, ID> {
         return Optional.empty();
     }
 
+    /**
+     * Updates a given entity and returns the updated instance.
+     *
+     * @param entity not null
+     * @return the updates entity
+     */
+    public Optional<T> update(T entity) {
+        try {
+            merge(entity);
+            logger.info("[x] Updated entity {}", entity);
+            return Optional.ofNullable(entity);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return Optional.empty();
+    }
+
     /**
      * Persists the given album.
      *
@@ -78,6 +96,17 @@ abstract class AbstractRepository<T, ID> implements Repository<T, ID> {
         entityManager.getTransaction().commit();
     }
 
+    /**
+     * Merge the given album.
+     *
+     * @param entity  the album to merge
+     */
+    private void merge(T entity) {
+        entityManager.getTransaction().begin();
+        entityManager.merge(entity);
+        entityManager.getTransaction().commit();
+    }
+
     /**
      * Retrieves all instances of the class type.
      *
diff --git a/src/main/java/NTNU/IDATT1002/repository/Repository.java b/src/main/java/NTNU/IDATT1002/repository/Repository.java
index cf1d93c6..20ba935e 100644
--- a/src/main/java/NTNU/IDATT1002/repository/Repository.java
+++ b/src/main/java/NTNU/IDATT1002/repository/Repository.java
@@ -22,6 +22,14 @@ public interface Repository<T, ID> {
      */
     Optional<T> save(T entity);
 
+    /**
+     * Updates a given entity and returns the updated instance.
+     *
+     * @param entity not null
+     * @return the updated entity
+     */
+    Optional<T> update(T entity);
+
     /**
      * Retrieves all instances of the type.
      *
diff --git a/src/main/java/NTNU/IDATT1002/service/AlbumService.java b/src/main/java/NTNU/IDATT1002/service/AlbumService.java
index aa6caa6f..86707b75 100644
--- a/src/main/java/NTNU/IDATT1002/service/AlbumService.java
+++ b/src/main/java/NTNU/IDATT1002/service/AlbumService.java
@@ -75,12 +75,8 @@ public class AlbumService {
     }
 
     public Optional<Album> addImage(Album album, Image image){
-        /*
         album.addImage(image);
         return albumRepository.update(album);
-         */
-        //TODO: make update method in AbstractRepository then remove commenting
-        return Optional.empty();
     }
 
     /**
-- 
GitLab


From 771566602ca6481ccbf472a42b98a1d0d2516d8b Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Wed, 8 Apr 2020 15:09:03 +0200
Subject: [PATCH 20/28] removed refresh

---
 src/main/java/NTNU/IDATT1002/controllers/UploadImages.java | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
index c8b6a1b3..9f822168 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
@@ -78,10 +78,6 @@ public class UploadImages implements Initializable {
    * @param resources
    */
   public void initialize(URL location, ResourceBundle resources) {
-    refresh();
-  }
-
-  public void refresh(){
     uploadContainer.getChildren().clear();
     List<File> files = App.ex.getUploadedFiles();
     int maxPerPage = Math.min(files.size(), 25);
@@ -109,6 +105,7 @@ public class UploadImages implements Initializable {
     }
   }
 
+
   /**
    * Format and insert the first image in the given album to the given container.
    *
-- 
GitLab


From 7c3cfeeda339472e457327f1cada196afab0b263 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Thu, 9 Apr 2020 18:09:51 +0200
Subject: [PATCH 21/28] added logfile to gitignore

---
 .gitignore | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/.gitignore b/.gitignore
index 098193d3..8592cb94 100644
--- a/.gitignore
+++ b/.gitignore
@@ -79,3 +79,6 @@ fabric.properties
 
 # Android studio 3.1+ serialized cache file
 .idea/caches/build_file_checksums.ser
+
+# Logfile
+log/logfile.log
\ No newline at end of file
-- 
GitLab


From 5bc8f7baee79bc90ccf0f3d94eef063242329550 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Thu, 9 Apr 2020 19:18:42 +0200
Subject: [PATCH 22/28] Made getMetadata method in metadataextractor

---
 log/logfile.log                               | 1920 +++++++++++++++++
 .../IDATT1002/controllers/UploadImages.java   |   34 +-
 .../IDATT1002/utils/MetaDataExtractor.java    |   31 +-
 3 files changed, 1939 insertions(+), 46 deletions(-)

diff --git a/log/logfile.log b/log/logfile.log
index f67d3355..74f49da2 100644
--- a/log/logfile.log
+++ b/log/logfile.log
@@ -137,3 +137,1923 @@ DEBUG org.hibernate.SQL:
         login login0_ 
     where
         login0_.username=?
+DEBUG org.hibernate.SQL: 
+    /* 
+from
+    NTNU.IDATT1002.models.Album */ select
+        album0_.id as id1_0_,
+        album0_.createdAt as createdA2_0_,
+        album0_.description as descript3_0_,
+        album0_.title as title4_0_,
+        album0_.updatedAt as updatedA5_0_,
+        album0_.user_username as user_use6_0_ 
+    from
+        album album0_
+DEBUG org.hibernate.SQL: 
+    select
+        user0_.username as username1_11_0_,
+        user0_.birthDate as birthDat2_11_0_,
+        user0_.callingCode as callingC3_11_0_,
+        user0_.email as email4_11_0_,
+        user0_.firstName as firstNam5_11_0_,
+        user0_.isActive as isActive6_11_0_,
+        user0_.isAdmin as isAdmin7_11_0_,
+        user0_.lastName as lastName8_11_0_,
+        user0_.phoneNumber as phoneNum9_11_0_ 
+    from
+        user user0_ 
+    where
+        user0_.username=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        images0_.Album_id as Album_id1_1_0_,
+        images0_.images_id as images_i2_1_0_,
+        image1_.id as id1_5_1_,
+        image1_.metadata_metadataId as metadata5_5_1_,
+        image1_.path as path2_5_1_,
+        image1_.rawImage as rawImage3_5_1_,
+        image1_.uploadedAt as uploaded4_5_1_,
+        image1_.user_username as user_use6_5_1_ 
+    from
+        album_image images0_ 
+    inner join
+        image image1_ 
+            on images0_.images_id=image1_.id 
+    where
+        images0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        tags0_.Album_id as Album_id1_2_0_,
+        tags0_.tags_tagId as tags_tag2_2_0_,
+        tag1_.tagId as tagId1_10_1_,
+        tag1_.name as name2_10_1_ 
+    from
+        album_tag tags0_ 
+    inner join
+        tag tag1_ 
+            on tags0_.tags_tagId=tag1_.tagId 
+    where
+        tags0_.Album_id=?
+DEBUG org.hibernate.SQL: 
+    select
+        next_val as id_val 
+    from
+        hibernate_sequence for update
+            
+DEBUG org.hibernate.SQL: 
+    update
+        hibernate_sequence 
+    set
+        next_val= ? 
+    where
+        next_val=?
+DEBUG org.hibernate.SQL: 
+    select
+        next_val as id_val 
+    from
+        hibernate_sequence for update
+            
+DEBUG org.hibernate.SQL: 
+    update
+        hibernate_sequence 
+    set
+        next_val= ? 
+    where
+        next_val=?
+DEBUG org.hibernate.SQL: 
+    /* insert NTNU.IDATT1002.models.GeoLocation
+        */ insert 
+        into
+            geolocation
+            (latitude, longitude, geoLocationId) 
+        values
+            (?, ?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert NTNU.IDATT1002.models.Metadata
+        */ insert 
+        into
+            metadata
+            (iso, aperture, camera, filedimension, filesize, filetype, focallength, geolocation_geoLocationId, lens, photodate, shutterspeed, metadataId) 
+        values
+            (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert NTNU.IDATT1002.models.Image
+        */ insert 
+        into
+            image
+            (metadata_metadataId, path, rawImage, uploadedAt, user_username) 
+        values
+            (?, ?, ?, ?, ?)
+DEBUG org.hibernate.SQL: 
+    select
+        last_insert_id()
+DEBUG org.hibernate.SQL: 
+    /* delete collection NTNU.IDATT1002.models.Album.images */ delete 
+        from
+            album_image 
+        where
+            Album_id=?
+DEBUG org.hibernate.SQL: 
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
+        into
+            album_image
+            (Album_id, images_id) 
+        values
+            (?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
+        into
+            album_image
+            (Album_id, images_id) 
+        values
+            (?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
+        into
+            album_image
+            (Album_id, images_id) 
+        values
+            (?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
+        into
+            album_image
+            (Album_id, images_id) 
+        values
+            (?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
+        into
+            album_image
+            (Album_id, images_id) 
+        values
+            (?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
+        into
+            album_image
+            (Album_id, images_id) 
+        values
+            (?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert collection
+        row NTNU.IDATT1002.models.Album.images */ insert 
+        into
+            album_image
+            (Album_id, images_id) 
+        values
+            (?, ?)
+DEBUG org.hibernate.SQL: 
+    /* insert collection
+        row NTNU.IDATT1002.models.Image.albums */ insert 
+        into
+            image_album
+            (Image_id, albums_id) 
+        values
+            (?, ?)
diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
index 9f822168..0d056c64 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
@@ -206,39 +206,7 @@ public class UploadImages implements Initializable {
     metadataLabel.setFont(Font.font("System", FontWeight.BOLD, 16));
 
     MetaDataExtractor metaDataExtractor = new MetaDataExtractor();
-    //Histogram histogram = metaDataExtractor.getHistogram(file);
-    String metadataSting = "";
-    if (!metaDataExtractor.getLens(file).isEmpty()){
-      metadataSting += "Camera: " + metaDataExtractor.getCamera(file) + "\n";
-    }
-    if (!metaDataExtractor.getLens(file).isEmpty()){
-      metadataSting += "Lens: " + metaDataExtractor.getLens(file) + "\n";
-    }
-    if (!metaDataExtractor.getAperture(file).isEmpty()) {
-      metadataSting += "Aperture: " + metaDataExtractor.getAperture(file) + "\n";
-    }
-    if (!metaDataExtractor.getFileDimension(file).isEmpty()) {
-      metadataSting += "File dimensions: " + metaDataExtractor.getFileDimension(file) + "\n";
-    }
-    if (!metaDataExtractor.getFileType(file).isEmpty()) {
-      metadataSting += "File type: " + metaDataExtractor.getFileType(file) + "\n";
-    }
-    if (!metaDataExtractor.getFileSize(file).isEmpty()) {
-      metadataSting += "File size: " + metaDataExtractor.getFileSize(file) + "\n";
-    }
-    if (!metaDataExtractor.getFocalLength(file).isEmpty()) {
-      metadataSting += "Focal length: " + metaDataExtractor.getFocalLength(file) + "\n";
-    }
-    if (!metaDataExtractor.getIso(file).isEmpty()) {
-      metadataSting += "Iso: " + metaDataExtractor.getIso(file) + "\n";
-    }
-    if (!metaDataExtractor.getPhotoDate(file).isEmpty()) {
-      metadataSting += "Date: " + metaDataExtractor.getPhotoDate(file) + "\n";
-    }
-    if (!metaDataExtractor.getShutterSpeed(file).isEmpty()) {
-      metadataSting += "Shutter speed: " + metaDataExtractor.getShutterSpeed(file) + "\n";
-    }
-
+    String metadataSting = MetaDataExtractor.getMetadata(file);
     TextArea metadata = new TextArea(metadataSting);
 
     metadata.setEditable(false);
diff --git a/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java b/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java
index a35f270d..3bb183e2 100644
--- a/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java
+++ b/src/main/java/NTNU/IDATT1002/utils/MetaDataExtractor.java
@@ -37,7 +37,7 @@ public class MetaDataExtractor {
      * Returns a string with the GPS position
      * @return the gelocation of the file
      */
-    public GeoLocation getGeoLocation(File file) {
+    public static GeoLocation getGeoLocation(File file) {
         String gps = "";
         String latitude = "";
         String longitude = "";
@@ -66,7 +66,7 @@ public class MetaDataExtractor {
      * @param file that will be checked for Camera make
      * @return empty string if nothings found
      */
-    public String getCamera(File file) {
+    public static String getCamera(File file) {
         String cameraInformation = "";
         Directory directory;
 
@@ -91,7 +91,7 @@ public class MetaDataExtractor {
      * @param file that will be checked
      * @return empty string if nothing is found
      */
-    public String getLens(File file) {
+    public static String getLens(File file) {
         String lensInformation = "";
         Directory directory;
 
@@ -117,7 +117,7 @@ public class MetaDataExtractor {
      * @param file that will be checked
      * @return empty string if nothing is found
      */
-    public String getAperture(File file) {
+    public static String getAperture(File file) {
         String apertureInformation = "";
         Directory directory;
 
@@ -142,7 +142,7 @@ public class MetaDataExtractor {
      * @param file that will be checked
      * @return empty string if nothing is found
      */
-    public String getShutterSpeed(File file) {
+    public static String getShutterSpeed(File file) {
         String shutterSpeedInformation = "";
         Directory directory;
 
@@ -167,7 +167,7 @@ public class MetaDataExtractor {
      * @param file that will be checked
      * @return empty string if nothing is found
      */
-    public String getIso(File file) {
+    public static String getIso(File file) {
         String isoInformation = "";
         Directory directory;
 
@@ -192,7 +192,7 @@ public class MetaDataExtractor {
      * @param file that will be checked
      * @return empty string if nothing is found
      */
-    public String getFocalLength(File file) {
+    public static String getFocalLength(File file) {
         String focalLengthInformation = "";
         Directory directory;
 
@@ -218,7 +218,7 @@ public class MetaDataExtractor {
      * @param file that will be checked
      * @return empty string if nothing is found
      */
-    public String getFileType(File file) {
+    public static String getFileType(File file) {
         String fileTypeInformation = "";
         Directory directory;
 
@@ -244,7 +244,7 @@ public class MetaDataExtractor {
      * @param file that will be checked
      * @return empty string if nothing is found
      */
-    public String getPhotoDate(File file) {
+    public static String getPhotoDate(File file) {
         String dateInformation = "";
         Directory directory;
 
@@ -276,7 +276,7 @@ public class MetaDataExtractor {
      * @param file that will be checked
      * @return empty string if nothing is found
      */
-    public String getFileSize(File file) {
+    public static String getFileSize(File file) {
         String fileSize = "";
         Directory directory;
 
@@ -302,7 +302,7 @@ public class MetaDataExtractor {
      * @param file that will be checked
      * @return empty string if nothing is found
      */
-    public String getFileDimension(File file) {
+    public static String getFileDimension(File file) {
         String fileDimension = "";
         Directory directory;
 
@@ -322,7 +322,7 @@ public class MetaDataExtractor {
         return fileDimension;
     }
     
-    public void setMetadata(NTNU.IDATT1002.models.Metadata metadata, File file) {
+    public static void setMetadata(NTNU.IDATT1002.models.Metadata metadata, File file) {
         metadata.setCamera(getCamera(file));
         metadata.setLens(getLens(file));
         metadata.setAperture(getAperture(file));
@@ -335,13 +335,18 @@ public class MetaDataExtractor {
         metadata.setFileDimension(getFileDimension(file));
     }
 
+    public static String getMetadata(File file){
+        return getCamera(file) + getLens(file) + getAperture(file) + getShutterSpeed(file) + getFileDimension(file)
+                + getFocalLength(file) + getPhotoDate(file) + getIso(file) + getFileSize(file) + getFileType(file);
+    }
+
     /**
      * Cleans up the tags on a string
      * @param textToClean string that will be cleaned
      * @param directoryToRemove directory that will be removed from string
      * @return cleaned string
      */
-    private String cleanUpTags(String textToClean, Directory directoryToRemove) {
+    private static String cleanUpTags(String textToClean, Directory directoryToRemove) {
         String removingText = directoryToRemove.getName();
         textToClean = textToClean.replace(removingText, "");
         textToClean = textToClean.replace("[", "");
-- 
GitLab


From d62d89568cef698669b8b6c1afe95064ef196571 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Mon, 13 Apr 2020 11:19:38 +0200
Subject: [PATCH 23/28] changed obs list parameter to string and added alert
 msg

---
 .gitignore                                    |    3 -
 log/logfile.log                               | 2059 -----------------
 .../IDATT1002/controllers/UploadImages.java   |   25 +-
 3 files changed, 17 insertions(+), 2070 deletions(-)
 delete mode 100644 log/logfile.log

diff --git a/.gitignore b/.gitignore
index 8592cb94..098193d3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -79,6 +79,3 @@ fabric.properties
 
 # Android studio 3.1+ serialized cache file
 .idea/caches/build_file_checksums.ser
-
-# Logfile
-log/logfile.log
\ No newline at end of file
diff --git a/log/logfile.log b/log/logfile.log
deleted file mode 100644
index 74f49da2..00000000
--- a/log/logfile.log
+++ /dev/null
@@ -1,2059 +0,0 @@
-INFO  org.hibernate.Version: HHH000412: Hibernate Core {[WORKING]}
-INFO  org.hibernate.cfg.Environment: HHH000205: Loaded properties from resource hibernate.properties: {DB_DIALECT=org.hibernate.dialect.MySQL8Dialect, DB_USER=doadmin, DB_HBM2DDL=update, OVERRIDE_DEFAULT_DB_CONFIG=false, DB_DRIVER=com.mysql.cj.jdbc.Driver, hibernate.bytecode.use_reflection_optimizer=false, DB_URL=jdbc:mysql://db-mysql-lon1-07155-do-user-7212587-0.a.db.ondigitalocean.com:25060/image_application, DB_PASSWORD=s4oxtqu20e8r7tx5}
-INFO  org.hibernate.jpa.internal.util.LogHelper: HHH000204: Processing PersistenceUnitInfo [
-	name: ImageApplication
-	...]
-INFO  org.hibernate.annotations.common.Version: HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@452a37da
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration boolean -> org.hibernate.type.BooleanType@452a37da
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@452a37da
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration numeric_boolean -> org.hibernate.type.NumericBooleanType@eb7518
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration true_false -> org.hibernate.type.TrueFalseType@64f52d5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration yes_no -> org.hibernate.type.YesNoType@1dea1106
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@27e62014
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte -> org.hibernate.type.ByteType@27e62014
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Byte -> org.hibernate.type.ByteType@27e62014
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration character -> org.hibernate.type.CharacterType@5e93a58f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char -> org.hibernate.type.CharacterType@5e93a58f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Character -> org.hibernate.type.CharacterType@5e93a58f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@48f77a16
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration short -> org.hibernate.type.ShortType@48f77a16
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Short -> org.hibernate.type.ShortType@48f77a16
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration integer -> org.hibernate.type.IntegerType@122ddc8c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration int -> org.hibernate.type.IntegerType@122ddc8c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Integer -> org.hibernate.type.IntegerType@122ddc8c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@29639b87
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration long -> org.hibernate.type.LongType@29639b87
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Long -> org.hibernate.type.LongType@29639b87
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@16aa0407
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration float -> org.hibernate.type.FloatType@16aa0407
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Float -> org.hibernate.type.FloatType@16aa0407
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@34c0afc5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration double -> org.hibernate.type.DoubleType@34c0afc5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Double -> org.hibernate.type.DoubleType@34c0afc5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_decimal -> org.hibernate.type.BigDecimalType@1106b67c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigDecimal -> org.hibernate.type.BigDecimalType@1106b67c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration big_integer -> org.hibernate.type.BigIntegerType@2aa02f8d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.math.BigInteger -> org.hibernate.type.BigIntegerType@2aa02f8d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration string -> org.hibernate.type.StringType@4092c49a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.String -> org.hibernate.type.StringType@4092c49a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nstring -> org.hibernate.type.StringNVarcharType@83a9f12
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ncharacter -> org.hibernate.type.CharacterNCharType@5aee78e5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration url -> org.hibernate.type.UrlType@27cda06f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.net.URL -> org.hibernate.type.UrlType@27cda06f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Duration -> org.hibernate.type.DurationType@23c1decf
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Duration -> org.hibernate.type.DurationType@23c1decf
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Instant -> org.hibernate.type.InstantType@703a8ada
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.Instant -> org.hibernate.type.InstantType@703a8ada
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDateTime -> org.hibernate.type.LocalDateTimeType@6406def1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDateTime -> org.hibernate.type.LocalDateTimeType@6406def1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalDate -> org.hibernate.type.LocalDateType@43c14be9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalDate -> org.hibernate.type.LocalDateType@43c14be9
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration LocalTime -> org.hibernate.type.LocalTimeType@1997a621
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.LocalTime -> org.hibernate.type.LocalTimeType@1997a621
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@705088be
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetDateTime -> org.hibernate.type.OffsetDateTimeType@705088be
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration OffsetTime -> org.hibernate.type.OffsetTimeType@27825564
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.OffsetTime -> org.hibernate.type.OffsetTimeType@27825564
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@44c738b2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.time.ZonedDateTime -> org.hibernate.type.ZonedDateTimeType@44c738b2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration date -> org.hibernate.type.DateType@c1be41
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Date -> org.hibernate.type.DateType@c1be41
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration time -> org.hibernate.type.TimeType@27dc117e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Time -> org.hibernate.type.TimeType@27dc117e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timestamp -> org.hibernate.type.TimestampType@72a2034c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Timestamp -> org.hibernate.type.TimestampType@72a2034c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Date -> org.hibernate.type.TimestampType@72a2034c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration dbtimestamp -> org.hibernate.type.DbTimestampType@23cbdc0f
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar -> org.hibernate.type.CalendarType@6acbf547
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Calendar -> org.hibernate.type.CalendarType@6acbf547
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.GregorianCalendar -> org.hibernate.type.CalendarType@6acbf547
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration calendar_date -> org.hibernate.type.CalendarDateType@4f2b8de1
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration locale -> org.hibernate.type.LocaleType@13159a55
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Locale -> org.hibernate.type.LocaleType@13159a55
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration currency -> org.hibernate.type.CurrencyType@10dd22a7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.Currency -> org.hibernate.type.CurrencyType@10dd22a7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration timezone -> org.hibernate.type.TimeZoneType@367d2662
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.TimeZone -> org.hibernate.type.TimeZoneType@367d2662
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration class -> org.hibernate.type.ClassType@1e1b009a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Class -> org.hibernate.type.ClassType@1e1b009a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-binary -> org.hibernate.type.UUIDBinaryType@b8983e8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.util.UUID -> org.hibernate.type.UUIDBinaryType@b8983e8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration uuid-char -> org.hibernate.type.UUIDCharType@7223678
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration binary -> org.hibernate.type.BinaryType@403674d7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration byte[] -> org.hibernate.type.BinaryType@403674d7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [B -> org.hibernate.type.BinaryType@403674d7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-binary -> org.hibernate.type.WrapperBinaryType@11d70721
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Byte[] -> org.hibernate.type.WrapperBinaryType@11d70721
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Byte; -> org.hibernate.type.WrapperBinaryType@11d70721
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration row_version -> org.hibernate.type.RowVersionType@54135bd5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration image -> org.hibernate.type.ImageType@40af58e7
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration characters -> org.hibernate.type.CharArrayType@7180257e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration char[] -> org.hibernate.type.CharArrayType@7180257e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [C -> org.hibernate.type.CharArrayType@7180257e
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration wrapper-characters -> org.hibernate.type.CharacterArrayType@5a345a1c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration [Ljava.lang.Character; -> org.hibernate.type.CharacterArrayType@5a345a1c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration Character[] -> org.hibernate.type.CharacterArrayType@5a345a1c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration text -> org.hibernate.type.TextType@55b6cce6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration ntext -> org.hibernate.type.NTextType@115a4a89
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration blob -> org.hibernate.type.BlobType@9c2b10a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Blob -> org.hibernate.type.BlobType@9c2b10a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_blob -> org.hibernate.type.MaterializedBlobType@438165ec
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration clob -> org.hibernate.type.ClobType@4e6cbbc3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.Clob -> org.hibernate.type.ClobType@4e6cbbc3
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration nclob -> org.hibernate.type.NClobType@5226dea5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.sql.NClob -> org.hibernate.type.NClobType@5226dea5
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_clob -> org.hibernate.type.MaterializedClobType@1239e1e8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration materialized_nclob -> org.hibernate.type.MaterializedNClobType@1c78e459
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration serializable -> org.hibernate.type.SerializableType@4ab6bad2
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration object -> org.hibernate.type.ObjectType@5b385f73
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration java.lang.Object -> org.hibernate.type.ObjectType@5b385f73
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_date -> org.hibernate.type.AdaptedImmutableType@23081bf6
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_time -> org.hibernate.type.AdaptedImmutableType@73cdb88c
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_timestamp -> org.hibernate.type.AdaptedImmutableType@605436e8
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_dbtimestamp -> org.hibernate.type.AdaptedImmutableType@4aecf022
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar -> org.hibernate.type.AdaptedImmutableType@29589522
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_calendar_date -> org.hibernate.type.AdaptedImmutableType@374f515d
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_binary -> org.hibernate.type.AdaptedImmutableType@766dd22a
-DEBUG org.hibernate.type.BasicTypeRegistry: Adding type registration imm_serializable -> org.hibernate.type.AdaptedImmutableType@5bad5125
-INFO  org.hibernate.dialect.Dialect: HHH000400: Using dialect: org.hibernate.dialect.MySQL8Dialect
-INFO  org.hibernate.engine.jdbc.env.internal.LobCreatorBuilderImpl: HHH000422: Disabling contextual LOB creation as connection was null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@1c4c2741] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@414c23b5]
-INFO  org.hibernate.validator.internal.util.Version: HV000001: Hibernate Validator null
-DEBUG org.hibernate.type.spi.TypeConfiguration$Scope: Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@1c4c2741] to SessionFactoryImpl [org.hibernate.internal.SessionFactoryImpl@85ad9ad]
-INFO  org.hibernate.hql.internal.QueryTranslatorFactoryInitiator: HHH000397: Using ASTQueryTranslatorFactory
-WARN  org.hibernate.orm.connections.pooling: HHH10001002: Using Hibernate built-in connection pool (not for production use!)
-INFO  org.hibernate.orm.connections.pooling: HHH10001005: using driver [com.mysql.cj.jdbc.Driver] at URL [jdbc:mysql://mysql.stud.iie.ntnu.no:3306/g_sysutv_14]
-INFO  org.hibernate.orm.connections.pooling: HHH10001001: Connection properties: {password=****, user=g_sysutv_14}
-INFO  org.hibernate.orm.connections.pooling: HHH10001003: Autocommit mode: false
-INFO  org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl: HHH000115: Hibernate connection pool size: 20 (min=1)
-DEBUG org.hibernate.SQL: 
-    select
-        login0_.username as username1_8_0_,
-        login0_.hash as hash2_8_0_,
-        login0_.passwordSalt as password3_8_0_,
-        login0_.user_username as user_use4_8_0_ 
-    from
-        login login0_ 
-    where
-        login0_.username=?
-DEBUG org.hibernate.SQL: 
-    /* 
-from
-    NTNU.IDATT1002.models.Album */ select
-        album0_.id as id1_0_,
-        album0_.createdAt as createdA2_0_,
-        album0_.description as descript3_0_,
-        album0_.title as title4_0_,
-        album0_.updatedAt as updatedA5_0_,
-        album0_.user_username as user_use6_0_ 
-    from
-        album album0_
-DEBUG org.hibernate.SQL: 
-    select
-        user0_.username as username1_11_0_,
-        user0_.birthDate as birthDat2_11_0_,
-        user0_.callingCode as callingC3_11_0_,
-        user0_.email as email4_11_0_,
-        user0_.firstName as firstNam5_11_0_,
-        user0_.isActive as isActive6_11_0_,
-        user0_.isAdmin as isAdmin7_11_0_,
-        user0_.lastName as lastName8_11_0_,
-        user0_.phoneNumber as phoneNum9_11_0_ 
-    from
-        user user0_ 
-    where
-        user0_.username=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        images0_.Album_id as Album_id1_1_0_,
-        images0_.images_id as images_i2_1_0_,
-        image1_.id as id1_5_1_,
-        image1_.metadata_metadataId as metadata5_5_1_,
-        image1_.path as path2_5_1_,
-        image1_.rawImage as rawImage3_5_1_,
-        image1_.uploadedAt as uploaded4_5_1_,
-        image1_.user_username as user_use6_5_1_ 
-    from
-        album_image images0_ 
-    inner join
-        image image1_ 
-            on images0_.images_id=image1_.id 
-    where
-        images0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        tags0_.Album_id as Album_id1_2_0_,
-        tags0_.tags_tagId as tags_tag2_2_0_,
-        tag1_.tagId as tagId1_10_1_,
-        tag1_.name as name2_10_1_ 
-    from
-        album_tag tags0_ 
-    inner join
-        tag tag1_ 
-            on tags0_.tags_tagId=tag1_.tagId 
-    where
-        tags0_.Album_id=?
-DEBUG org.hibernate.SQL: 
-    select
-        next_val as id_val 
-    from
-        hibernate_sequence for update
-            
-DEBUG org.hibernate.SQL: 
-    update
-        hibernate_sequence 
-    set
-        next_val= ? 
-    where
-        next_val=?
-DEBUG org.hibernate.SQL: 
-    select
-        next_val as id_val 
-    from
-        hibernate_sequence for update
-            
-DEBUG org.hibernate.SQL: 
-    update
-        hibernate_sequence 
-    set
-        next_val= ? 
-    where
-        next_val=?
-DEBUG org.hibernate.SQL: 
-    /* insert NTNU.IDATT1002.models.GeoLocation
-        */ insert 
-        into
-            geolocation
-            (latitude, longitude, geoLocationId) 
-        values
-            (?, ?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert NTNU.IDATT1002.models.Metadata
-        */ insert 
-        into
-            metadata
-            (iso, aperture, camera, filedimension, filesize, filetype, focallength, geolocation_geoLocationId, lens, photodate, shutterspeed, metadataId) 
-        values
-            (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert NTNU.IDATT1002.models.Image
-        */ insert 
-        into
-            image
-            (metadata_metadataId, path, rawImage, uploadedAt, user_username) 
-        values
-            (?, ?, ?, ?, ?)
-DEBUG org.hibernate.SQL: 
-    select
-        last_insert_id()
-DEBUG org.hibernate.SQL: 
-    /* delete collection NTNU.IDATT1002.models.Album.images */ delete 
-        from
-            album_image 
-        where
-            Album_id=?
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Album.images */ insert 
-        into
-            album_image
-            (Album_id, images_id) 
-        values
-            (?, ?)
-DEBUG org.hibernate.SQL: 
-    /* insert collection
-        row NTNU.IDATT1002.models.Image.albums */ insert 
-        into
-            image_album
-            (Image_id, albums_id) 
-        values
-            (?, ?)
diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
index 0d056c64..b1111bf7 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
@@ -223,14 +223,13 @@ public class UploadImages implements Initializable {
    * @param textContainer container for text elements of an image
    */
   private void insertCheckedChoiceBox(VBox textContainer){
-    ObservableList<Album> options = FXCollections.observableArrayList();
+    ObservableList<String> options = FXCollections.observableArrayList();
     albumService.getAllAlbums().stream()
             //Filters the users albums
             .filter(album -> album.getUser() == ApplicationState.getCurrentUser())
             //Adds a checkbox for each album
-            //TODO: make toString in album a bit more userfriendly for this dropdown
-            .forEach(options::add);
-    CheckComboBox<Album> checkComboBox = new CheckComboBox<>(options);
+            .forEach(album -> options.add(album.getTitle() + " #" + album.getId()));
+    CheckComboBox<String> checkComboBox = new CheckComboBox<>(options);
     checkComboBox.setId("checkbox");
     checkComboBox.setTitle("Add to albums");
     textContainer.getChildren().add(checkComboBox);
@@ -324,7 +323,10 @@ public class UploadImages implements Initializable {
       Node comboBox = childNodes.get(2);
 
       //List of the albums checked on the dropdown list
-      ObservableList<Album> chosenAlbums = ((CheckComboBox<Album>) comboBox).getCheckModel().getCheckedItems();
+      ObservableList<String> chosenAlbums = ((CheckComboBox<String>) comboBox).getCheckModel().getCheckedItems();
+      ArrayList<String> albumsId = new ArrayList<>();
+      //Splits the id so we can find albums by id afterwards
+      chosenAlbums.forEach(album -> albumsId.add(album.substring(album.lastIndexOf('#'))));
 
       //Each of the uploaded images in DataExchange index match on each container displaying it on the page
       File file = App.ex.getUploadedFiles().get(i);
@@ -335,17 +337,24 @@ public class UploadImages implements Initializable {
       Optional<NTNU.IDATT1002.models.Image> createdImage = imageService.createImage(ApplicationState.getCurrentUser(), file, tags);
       createdImage.ifPresent(image -> {
         //For each chosen album checked the image is added
-        for (Album album : chosenAlbums) {
-          albumService.addImage(album, image);
+        for (String id : albumsId) {
+          Optional<Album> findAlbum = albumService.getAlbumById(Long.parseLong(id));
+          findAlbum.ifPresent(album -> albumService.addImage(album, image));
+
         }
         //Removes container if it was uploaded from data exchange
         uploadContainer.getChildren().remove(imageContainer);
       });
     }
-    //All files was uploaded
+    //If only element in container is button we change to main page
     if (uploadContainer.getChildren().size() == 1) {
       App.setRoot("main");
     }
+    else {
+      Alert alert = new Alert(Alert.AlertType.INFORMATION, "Could not upload following images");
+      alert.show();
+
+    }
   }
 
   public static ArrayList<Node> getAllNodes(Parent root) {
-- 
GitLab


From 089ce606ceb3c6319b8c073cf539ae722c6fc7d2 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Mon, 13 Apr 2020 11:27:57 +0200
Subject: [PATCH 24/28] changed alert msg

---
 .../NTNU/IDATT1002/controllers/UploadImages.java | 16 ++++------------
 1 file changed, 4 insertions(+), 12 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
index b1111bf7..305b37fe 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/UploadImages.java
@@ -7,13 +7,10 @@ import NTNU.IDATT1002.models.Tag;
 import NTNU.IDATT1002.service.AlbumService;
 import NTNU.IDATT1002.service.ImageService;
 import NTNU.IDATT1002.service.TagService;
-import NTNU.IDATT1002.utils.ImageUtil;
 import NTNU.IDATT1002.utils.MetaDataExtractor;
 import javafx.collections.FXCollections;
-import javafx.collections.ListChangeListener;
 import javafx.collections.ObservableList;
 import javafx.event.ActionEvent;
-import javafx.event.EventHandler;
 import javafx.fxml.Initializable;
 import javafx.geometry.Insets;
 import javafx.geometry.Pos;
@@ -28,17 +25,13 @@ import javafx.scene.layout.VBox;
 import javafx.scene.text.Font;
 import javafx.scene.text.FontWeight;
 import javafx.scene.text.Text;
-import javafx.stage.FileChooser;
 
 import org.controlsfx.control.CheckComboBox;
-import org.hibernate.boot.jaxb.internal.stax.HbmEventReader;
 
 import javax.persistence.EntityManager;
 import java.io.File;
 import java.io.IOException;
-import java.net.MalformedURLException;
 import java.net.URL;
-import java.nio.file.Files;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -225,9 +218,9 @@ public class UploadImages implements Initializable {
   private void insertCheckedChoiceBox(VBox textContainer){
     ObservableList<String> options = FXCollections.observableArrayList();
     albumService.getAllAlbums().stream()
-            //Filters the users albums
+            //Filters the current users albums
             .filter(album -> album.getUser() == ApplicationState.getCurrentUser())
-            //Adds a checkbox for each album
+            //Adds a checkbox with albums title and id
             .forEach(album -> options.add(album.getTitle() + " #" + album.getId()));
     CheckComboBox<String> checkComboBox = new CheckComboBox<>(options);
     checkComboBox.setId("checkbox");
@@ -326,7 +319,7 @@ public class UploadImages implements Initializable {
       ObservableList<String> chosenAlbums = ((CheckComboBox<String>) comboBox).getCheckModel().getCheckedItems();
       ArrayList<String> albumsId = new ArrayList<>();
       //Splits the id so we can find albums by id afterwards
-      chosenAlbums.forEach(album -> albumsId.add(album.substring(album.lastIndexOf('#'))));
+      chosenAlbums.forEach(album -> albumsId.add(album.substring(album.lastIndexOf('#')+1)));
 
       //Each of the uploaded images in DataExchange index match on each container displaying it on the page
       File file = App.ex.getUploadedFiles().get(i);
@@ -351,9 +344,8 @@ public class UploadImages implements Initializable {
       App.setRoot("main");
     }
     else {
-      Alert alert = new Alert(Alert.AlertType.INFORMATION, "Could not upload following images");
+      Alert alert = new Alert(Alert.AlertType.INFORMATION, "Could not upload some of your images. Please try again.");
       alert.show();
-
     }
   }
 
-- 
GitLab


From 20d7220fff5364a0155881d893bd9282a022ab64 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Mon, 13 Apr 2020 13:22:46 +0200
Subject: [PATCH 25/28] Small improvement in viewalbum

---
 src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
index 9cb06724..eec11790 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
@@ -83,9 +83,9 @@ public class ViewAlbum implements Initializable {
         Optional<Album> foundAlbum = albumService.getAlbumById(currentAlbumId);
         foundAlbum.ifPresent(album -> {
             currentAlbum = album;
+            List<NTNU.IDATT1002.models.Image> albumImages = album.getImages();
             //If album has an image
-            if (album.getImages().size() > 0) {
-                List<NTNU.IDATT1002.models.Image> albumImages = album.getImages();
+            if (albumImages.size() > 0) {
                 NTNU.IDATT1002.models.Image mainImage = albumImages.get(0);
                 mainImageContainer.setImage(ImageUtil.convertToFXImage(mainImage));
                 pictureTitleField.setText("ADD IMAGE TITLE");
-- 
GitLab


From 68c33981f93633ef8e93f7be3ed61f0dd665d60f Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Mon, 13 Apr 2020 15:41:09 +0200
Subject: [PATCH 26/28] Renaming

---
 .../NTNU/IDATT1002/controllers/ViewAlbum.java    | 16 ++++++++--------
 src/main/java/NTNU/IDATT1002/models/Image.java   |  2 +-
 src/main/java/NTNU/IDATT1002/models/Tag.java     |  2 +-
 3 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
index eec11790..d0097984 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
@@ -92,14 +92,14 @@ public class ViewAlbum implements Initializable {
                 pictureTagsField.setText("ADD IMAGE TAGS");
                 insertAlbumTextToContainer(album);
                 for (NTNU.IDATT1002.models.Image image : albumImages) {
-                    ImageView iV = new ImageView();
-                    iV.setFitHeight(64);
-                    iV.setFitWidth(114);
-                    iV.setPreserveRatio(true);
-                    iV.setId(image.getId().toString());
-                    iV.setImage(ImageUtil.convertToFXImage(image));
-                    albumImagesContainer.getChildren().add(iV);
-                    iV.setOnMouseClicked(new EventHandler<MouseEvent>() {
+                    ImageView imageView = new ImageView();
+                    imageView.setFitHeight(64);
+                    imageView.setFitWidth(114);
+                    imageView.setPreserveRatio(true);
+                    imageView.setId(image.getId().toString());
+                    imageView.setImage(ImageUtil.convertToFXImage(image));
+                    albumImagesContainer.getChildren().add(imageView);
+                    imageView.setOnMouseClicked(new EventHandler<MouseEvent>() {
                         @Override
                         public void handle(MouseEvent mouseEvent) {
                             setActiveImage(mouseEvent);
diff --git a/src/main/java/NTNU/IDATT1002/models/Image.java b/src/main/java/NTNU/IDATT1002/models/Image.java
index bdad3e7d..1fdb682d 100644
--- a/src/main/java/NTNU/IDATT1002/models/Image.java
+++ b/src/main/java/NTNU/IDATT1002/models/Image.java
@@ -97,7 +97,7 @@ public class Image {
   }
 
   public void addTags(ArrayList<Tag> tags) {
-    tags.addAll(tags);
+    this.tags.addAll(tags);
   }
 
   public void addTag(Tag tag){
diff --git a/src/main/java/NTNU/IDATT1002/models/Tag.java b/src/main/java/NTNU/IDATT1002/models/Tag.java
index 9b23d9bf..6cd3e459 100644
--- a/src/main/java/NTNU/IDATT1002/models/Tag.java
+++ b/src/main/java/NTNU/IDATT1002/models/Tag.java
@@ -37,7 +37,7 @@ public class Tag {
     @ManyToMany(cascade = {CascadeType.ALL}, fetch = FetchType.LAZY)
     @JoinTable(
             name = "image_tag",
-            joinColumns = {@JoinColumn(name = "tag_id")},
+            joinColumns = {@JoinColumn(name = "tags_tagId")},
             inverseJoinColumns = {@JoinColumn(name = "image_id")}
     )
     Set<Image> image = new HashSet<>();
-- 
GitLab


From 7a2013eb080a0b4c73d46177f4c5d4436059526b Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Mon, 13 Apr 2020 16:18:42 +0200
Subject: [PATCH 27/28] Small improvement

---
 .../NTNU/IDATT1002/controllers/ViewAlbum.java   | 17 ++++++++++-------
 .../resources/NTNU/IDATT1002/view_album.fxml    |  4 ++--
 2 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
index d0097984..9fee3b17 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
@@ -5,6 +5,7 @@ import NTNU.IDATT1002.models.Album;
 import NTNU.IDATT1002.models.Tag;
 import NTNU.IDATT1002.service.AlbumDocument;
 import NTNU.IDATT1002.service.AlbumService;
+import NTNU.IDATT1002.service.TagService;
 import NTNU.IDATT1002.utils.ImageUtil;
 import java.io.File;
 import java.io.IOException;
@@ -56,8 +57,8 @@ public class ViewAlbum implements Initializable {
     public Pane metadataPane;
     public Button createAlbumPdf;
     public ImageView mainImageContainer;
-    public Text pictureTitleField;
-    public Text pictureTagsField;
+    public Text mainImageTitle;
+    public Text mainImageTags;
 
     @FXML
     public VBox albumTextContainer;
@@ -88,8 +89,8 @@ public class ViewAlbum implements Initializable {
             if (albumImages.size() > 0) {
                 NTNU.IDATT1002.models.Image mainImage = albumImages.get(0);
                 mainImageContainer.setImage(ImageUtil.convertToFXImage(mainImage));
-                pictureTitleField.setText("ADD IMAGE TITLE");
-                pictureTagsField.setText("ADD IMAGE TAGS");
+                mainImageTitle.setText("ADD IMAGE TITLE");
+                mainImageTags.setText(TagService.getTagsAsString(mainImage.getTags()));
                 insertAlbumTextToContainer(album);
                 for (NTNU.IDATT1002.models.Image image : albumImages) {
                     ImageView imageView = new ImageView();
@@ -120,9 +121,11 @@ public class ViewAlbum implements Initializable {
         if (clickedObject instanceof ImageView) {
             ImageView clickedImageView = (ImageView) mouseEvent.getSource();
             Long clickedImageId = Long.parseLong(clickedImageView.getId());
-            Optional<NTNU.IDATT1002.models.Image> newImage = currentAlbum.getImages().stream().filter(img -> img.getId().equals(clickedImageId)).findFirst();
-            newImage.ifPresent(img -> {
-                Image image = ImageUtil.convertToFXImage(img);
+            Optional<NTNU.IDATT1002.models.Image> findImage = currentAlbum.getImages().stream().filter(img -> img.getId().equals(clickedImageId)).findFirst();
+            findImage.ifPresent(newImage -> {
+                Image image = ImageUtil.convertToFXImage(newImage);
+                mainImageTitle.setText("ADD IMAGE TITLE");
+                mainImageTags.setText(TagService.getTagsAsString(newImage.getTags()));
                 mainImageContainer.setImage(image);
             });
         }
diff --git a/src/main/resources/NTNU/IDATT1002/view_album.fxml b/src/main/resources/NTNU/IDATT1002/view_album.fxml
index df7e7984..e5671255 100644
--- a/src/main/resources/NTNU/IDATT1002/view_album.fxml
+++ b/src/main/resources/NTNU/IDATT1002/view_album.fxml
@@ -57,12 +57,12 @@
                <children>
                   <VBox maxWidth="839.0" prefHeight="660.0" prefWidth="839.0" spacing="10.0">
                      <children>
-                        <Text fx:id="pictureTitleField" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="Picturetitle">
+                        <Text fx:id="mainImageTitle" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="Picturetitle">
                            <font>
                               <Font size="24.0" />
                            </font>
                         </Text>
-                        <Text fx:id="pictureTagsField" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="#tags">
+                        <Text fx:id="mainImageTags" fill="WHITE" strokeType="OUTSIDE" strokeWidth="0.0" text="#tags">
                            <font>
                               <Font size="18.0" />
                            </font>
-- 
GitLab


From cbc84d232882c0eacaca7150a42698dcd7f4cb04 Mon Sep 17 00:00:00 2001
From: Simon Jensen <simon.jensen.lg@gmail.com>
Date: Mon, 13 Apr 2020 16:40:32 +0200
Subject: [PATCH 28/28] rename fix

---
 src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
index eb6638be..c099421e 100644
--- a/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
+++ b/src/main/java/NTNU/IDATT1002/controllers/ViewAlbum.java
@@ -62,8 +62,8 @@ public class ViewAlbum implements Initializable {
 
     @FXML
     public VBox albumTextContainer;
-    public HBox albumImages;
     public Button viewOnMapBtn;
+    public HBox albumImagesContainer;
 
     private AlbumService albumService;
     private Album currentAlbum;
-- 
GitLab