]> git.mxchange.org Git - jfinancials-lib.git/blobdiff - src/org/mxchange/addressbook/model/addressbook/UserAddressbook.java
re-ordered members + re-formated
[jfinancials-lib.git] / src / org / mxchange / addressbook / model / addressbook / UserAddressbook.java
index 730e9498cace4a02aefcdbf49cb17ce4e060726b..819d83fc64e022b7169aab5730d13a81a47a39bb 100644 (file)
@@ -46,7 +46,8 @@ import org.mxchange.jusercore.model.user.User;
 @Table (name = "addressbooks")
 @NamedQueries (
                {
-                       @NamedQuery (name = "AllUsersAddressbooks", query = "SELECT a FROM addressbooks AS a WHERE a.addressbookUser = :param ORDER BY a.addressbookId ASC")
+                       @NamedQuery (name = "AllUsersAddressbooks", query = "SELECT a FROM addressbooks AS a WHERE a.addressbookUser = :param ORDER BY a.addressbookId ASC"),
+                       @NamedQuery (name = "SearchUserAddressbookName", query = "SELECT a FROM addressbooks AS a WHERE a.addressbookUser = :user AND LOWER(a.addressbookName) LIKE LOWER(:name)")
                }
 )
 public class UserAddressbook implements Addressbook, Comparable<Addressbook> {
@@ -56,6 +57,14 @@ public class UserAddressbook implements Addressbook, Comparable<Addressbook> {
         */
        private static final long serialVersionUID = 176_573_148_678_169L;
 
+       /**
+        * When this address book has been created
+        */
+       @Basic (optional = false)
+       @Temporal (value = TemporalType.TIMESTAMP)
+       @Column (name = "addressbook_created", nullable = false, updatable = false)
+       private Calendar addressbookCreated;
+
        /**
         * Id number
         */
@@ -65,19 +74,11 @@ public class UserAddressbook implements Addressbook, Comparable<Addressbook> {
        private Long addressbookId;
 
        /**
-        * Connection to "users" table
-        */
-       @JoinColumn (name = "addressbook_user_id", nullable = false)
-       @OneToOne (targetEntity = LoginUser.class, optional = false, cascade = CascadeType.ALL)
-       private User addressbookUser;
-
-       /**
-        * When this address book has been created
+        * Name for this address book
         */
        @Basic (optional = false)
-       @Temporal (TemporalType.TIMESTAMP)
-       @Column (name = "addressbook_created", nullable = false, updatable = false)
-       private Calendar addressbookCreated;
+       @Column (name = "addressbook_name", length = 50, nullable = false)
+       private String addressbookName;
 
        /**
         * Adress book status
@@ -88,11 +89,30 @@ public class UserAddressbook implements Addressbook, Comparable<Addressbook> {
        private AddressbokStatus addressbookStatus;
 
        /**
-        * Name for this address book
+        * Connection to "users" table
         */
-       @Basic (optional = false)
-       @Column (name = "addressbook_name", length = 50, nullable = false)
-       private String addressbookName;
+       @JoinColumn (name = "addressbook_user_id", nullable = false)
+       @OneToOne (targetEntity = LoginUser.class, optional = false, cascade = CascadeType.ALL)
+       private User addressbookUser;
+
+       /**
+        * Public constructor with address book name
+        * <p>
+        * @param addressbookName Address book name
+        */
+       public UserAddressbook (final String addressbookName) {
+               // Call default constructor
+               this();
+
+               // Set name
+               this.addressbookName = addressbookName;
+       }
+
+       /**
+        * Default protected constructor
+        */
+       protected UserAddressbook () {
+       }
 
        @Override
        public int compareTo (final Addressbook addressbook) {