]> git.mxchange.org Git - jcontacts-business-core.git/blobdiff - src/org/mxchange/jcontactsbusiness/headquarters/CompanyHeadQuartersData.java
eager fetch type ... + updated jar(s)
[jcontacts-business-core.git] / src / org / mxchange / jcontactsbusiness / headquarters / CompanyHeadQuartersData.java
index 445ea3aad8b0ea217928d451f3a32db9a40d828b..b7ee9752695f59952bc75b555189b088b829c59e 100644 (file)
 package org.mxchange.jcontactsbusiness.headquarters;
 
 import javax.persistence.Basic;
+import javax.persistence.CascadeType;
 import javax.persistence.Column;
 import javax.persistence.Entity;
+import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
 import javax.persistence.Table;
+import org.mxchange.jcountry.data.Country;
+import org.mxchange.jcountry.data.CountryData;
+import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
+import org.mxchange.jphone.phonenumbers.fax.FaxNumber;
+import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
+import org.mxchange.jphone.phonenumbers.landline.LandLineNumber;
 
 /**
  * A POJO for company headquarts data
  * <p>
  * @author Roland Haeder
  */
-@Entity (name = "headquarters")
-@Table (name = "headquarters")
+@Entity (name = "company_headquarters")
+@Table (name = "company_headquarters")
 public class CompanyHeadQuartersData implements HeadQuartersData, Comparable<HeadQuartersData> {
 
        /**
@@ -48,9 +58,16 @@ public class CompanyHeadQuartersData implements HeadQuartersData, Comparable<Hea
        /**
         * Headquarter's country code
         */
-       @Basic (optional = false)
-       @Column (name = "headquarters_country_code", length = 2, nullable = false)
-       private String headquartersCountryCode;
+       @JoinColumn (name = "headquarters_country_id", nullable = false)
+       @OneToOne (targetEntity = CountryData.class, cascade = CascadeType.ALL, optional = false, fetch = FetchType.EAGER)
+       private Country headquartersCountry;
+
+       /**
+        * Headquarters' fax number
+        */
+       @JoinColumn (name = "headquarters_fax_number_id")
+       @OneToOne (targetEntity = FaxNumber.class, cascade = CascadeType.ALL)
+       private DialableFaxNumber headquartersFaxNumber;
 
        /**
         * Headquarters' house number
@@ -63,10 +80,17 @@ public class CompanyHeadQuartersData implements HeadQuartersData, Comparable<Hea
         * Id number
         */
        @Id
-       @Column (name = "headquarters_id", length = 20, nullable = false, unique = true, updatable = false)
        @GeneratedValue (strategy = GenerationType.IDENTITY)
+       @Column (name = "headquarters_id", length = 20, nullable = false, updatable = false)
        private Long headquartersId;
 
+       /**
+        * Headquarters' phone number
+        */
+       @JoinColumn (name = "headquarters_phone_number_id")
+       @OneToOne (targetEntity = LandLineNumber.class, cascade = CascadeType.ALL)
+       private DialableLandLineNumber headquartersPhoneNumber;
+
        /**
         * Headquarters' store number (multi-store building only)
         */
@@ -109,13 +133,23 @@ public class CompanyHeadQuartersData implements HeadQuartersData, Comparable<Hea
        }
 
        @Override
-       public String getHeadquartersCountryCode () {
-               return this.headquartersCountryCode;
+       public Country getHeadquartersCountry () {
+               return this.headquartersCountry;
+       }
+
+       @Override
+       public void setHeadquartersCountry (final Country headquartersCountry) {
+               this.headquartersCountry = headquartersCountry;
        }
 
        @Override
-       public void setHeadquartersCountryCode (final String headquartersCountryCode) {
-               this.headquartersCountryCode = headquartersCountryCode;
+       public DialableFaxNumber getHeadquartersFaxNumber () {
+               return this.headquartersFaxNumber;
+       }
+
+       @Override
+       public void setHeadquartersFaxNumber (final DialableFaxNumber headquartersFaxNumber) {
+               this.headquartersFaxNumber = headquartersFaxNumber;
        }
 
        @Override
@@ -138,6 +172,16 @@ public class CompanyHeadQuartersData implements HeadQuartersData, Comparable<Hea
                this.headquartersId = headquartersId;
        }
 
+       @Override
+       public DialableLandLineNumber getHeadquartersPhoneNumber () {
+               return this.headquartersPhoneNumber;
+       }
+
+       @Override
+       public void setHeadquartersPhoneNumber (final DialableLandLineNumber headquartersPhoneNumber) {
+               this.headquartersPhoneNumber = headquartersPhoneNumber;
+       }
+
        @Override
        public Short getHeadquartersStore () {
                return this.headquartersStore;