From e3ec2da66bc09d08c0ad866c8476d8d00feee647 Mon Sep 17 00:00:00 2001
From: Roland Haeder <roland@mxchange.org>
Date: Tue, 22 Sep 2015 16:06:15 +0200
Subject: [PATCH] =?utf8?q?JPA=20started=20Signed-off-by:Roland=20H=C3=A4de?=
 =?utf8?q?r=20<roland@mxchange.org>?=
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit

---
 lib/jcore.jar                                 | Bin 29624 -> 31130 bytes
 lib/jcoreee.jar                               | Bin 21332 -> 19254 bytes
 .../CustomerAlreadyRegisteredException.java   |   2 +-
 .../jshopcore/model/customer/Customer.java    |  14 +++
 .../model/customer/ShopCustomer.java          |  58 ++++++++--
 .../jshopcore/model/order/Orderable.java      |  70 ++++++++++++
 .../jshopcore/model/order/ShopOrder.java      | 102 ++++++++++++++++++
 7 files changed, 238 insertions(+), 8 deletions(-)
 create mode 100644 src/org/mxchange/jshopcore/model/order/Orderable.java
 create mode 100644 src/org/mxchange/jshopcore/model/order/ShopOrder.java

diff --git a/lib/jcore.jar b/lib/jcore.jar
index 12190beef63bed67f80a91b64eeee71aede608fc..ead5916a21197864b7915b3c83d96c971ff478c8 100644
GIT binary patch
delta 7318
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
DROMFS

delta 5758
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
SuA`#M#PD!Z&^Mjj#{U5>nUu8v

diff --git a/lib/jcoreee.jar b/lib/jcoreee.jar
index e0c8236ae42db2dfedabf0bad7bbb814ce166491..93d401de39c53a2d93aaa31e42cad7b2ccac7bb9 100644
GIT binary patch
delta 557
zcmYL`PbdUY9LL{#Gi%m1!mizv*$m0H)VAZWNU{EuZD(i9tlFI9v`Ue?1DlgvtY6DT
zaS+EX%1xBQMOHa*5=S}7Re8TR<W28=-ur%kzxvL5k4N-uhpLV#$pJ$Agj^QOYMh-H
z%l*5I?`t})pK-oIlo|+!_9Hgv5aODq5qr!4-SKT(O<*%WDj!^_S_*8jfLCC9>KGy^
zWjIbxq-hzc_^A&WXt=}P)93KEid^jM7J4OiQIF?>@geFbQYBG$GyEm1l(k5I+2J@l
z$iu^1R;21Ole`TI<{+YMjv^k-NklYfA{KHEV%gH*DJQbk_;$cbdFm{pX5|rG_DuU_
zF*RA(e9tt=gy4*k|8ZDaf>FB_?weImrh?egHl?vE1?FfJUh11+-cwh&daXiQ>VVa@
z5ZDcMu$IRkhF9)X!oty=UQ{ecWAV;kh2L)@95@LyYTR&R!f14RP#JPH7BqxXwL-Ag
z7lH#fC?el}NAzy~x;RJv6O+Rdfd^N-Oh;a0>%+V|0gL%?i?0sLBK+G|2q}%@=?9=@
BuAKk?

delta 2477
zcmc&$U5Fc16wcqeHDs~WuF@LyxJ&m(!)Bv2wYzKDY<?!Qn@z$bv0ZT+Cdo}QIGKqv
zHyhHIu#d%u+746%@ds;t6j_u?1?!85P%7e^557waBEE^@ITPdlv??u?CYhW&XYM)o
zJ7?~9&i(X)^ZQFqUvAm$@j4uP9FB#xbG~WU{MxxAZ@6&$Eztij)A(;a?hKL0IggMy
z<D4h)mGd}>w_G9XYHG*|9(u@HaXm<?8>o6`YS?<+<?YYN^tFp5X5Fd%3u|G)vF&pZ
z$Cf^Ha0i;r)9$<nEjF(YJBLVq=exFt<a?v%eIyT$P1yRi$uDTx%_l-P?D@X%hCT0W
z<X4Y>E4r|7A@cqw({6`@u26qT=#{Fh6i>{w486q+t}t^PVtT7<DD?)1sn|3;I~zI-
zlCH{H6;d**GGoL$jz1_g6cf;{Zpcl*Va;F+OufcCvccw{tGA&dYhbXdVsb+%w>bla
z1NsT-1~m1mQtOWN&=D%z8u|s^V8EHtG(oS~H$tWe0@IiwtB`A#Riy%HrNT6mfsAXD
z#%!=El)D6o%##En{}%{I>gZVJimnBKDfrxgb!M1&56|`2=&^yv0O%AMOv#+E8=$wy
za2f%3L6s5Lz;@;z60j9#6%@^e)4;6a09|5`9Ys~4%%E+uT3Zd!V&z_&!wIpF$`%U{
z&8)(Ss3b)*h1GeS%^NyCW$Uc(OKG-L1%t)(8nVW_7y!9gNl392nnV}Hv{+chC?F{o
zGKqX1l359&kc&zMF;+}RCCC+}TsEJW0mx&TFdugQ|0T;c`%M`Ps*KBuY7RnQ#g}U$
zJhci9d7a@)t}taC!O2j;-Sgk?kC4l%uJ!76ponE_Ga)>&2Aa+TU?R+g2IsB0V6fBa
z%+$5^jBeC}xD#j>n864l8u2D1DJzwtE7@YEP!jW{Ofj8)A+9i3WF}{-+GJWCH=oHt
zQ!2Qx>&#^QG)LQ0x0q%NrF1qU*yc<@yE-f57KD|*eY}Ed1~17C6&-9ZAYs9%I#&-M
zz3AGa7}H9{{2fw^5_C@(=Iz~IhOypVG3<8n-wnaqymwy-<{j_Boe_*8zi0eHdiAi7
z{2%<v8dS68Ce~OiZzd5I`AVeP$*BnPaX_j9mT0D7Eu~Vi!%_yV-7GW1rj*mQ-#zHc
z*4fxmY|GX+F}vUT;<MQ7tVsMQiEcbf;`6vbVkogpLQ3RFoJ{(ys|ma5UdACL!+q^3
z5|@(_37>Fs>~`I_-<<b4Zbmg^GWF&_Zh1SZu<+t*Kc)7191glBw>9&N8<*VH$D@y0
z?|OXJhr&Ku=8E8V{WffCe-`W`#bYVI>kl7lp0eJad)R8G?0Flgy*7&4<JONUYVy`i
z)W~C~nZOgqGuF$ZJ+CGDU1uh3>yN~zY2FX0Sqj;jY$!n1Pf}c8|NaO};Nga@V>>`T
zZ@s!?pG&@6^1H4?$nyO1m~~zB+6mcxRv6e`-1sbJCj^e&a&p+6q20xB%SQ;0KbTaQ
YEbT6hx#gh;Xx;(*et@9gT%x-_0VrPSu>b%7

diff --git a/src/org/mxchange/jshopcore/exceptions/CustomerAlreadyRegisteredException.java b/src/org/mxchange/jshopcore/exceptions/CustomerAlreadyRegisteredException.java
index ae77abe..eb93d49 100644
--- a/src/org/mxchange/jshopcore/exceptions/CustomerAlreadyRegisteredException.java
+++ b/src/org/mxchange/jshopcore/exceptions/CustomerAlreadyRegisteredException.java
@@ -37,6 +37,6 @@ public class CustomerAlreadyRegisteredException extends Exception {
 	 */
 	public CustomerAlreadyRegisteredException (final Customer customer) {
 		// Call super contructor
-		super(MessageFormat.format("Customer {0} already registered with number {1} at record id {2}. Maybe forgot to call isRegistered(customer) ?", customer, customer.getCustomerNumber(), customer.getId()));
+		super(MessageFormat.format("Customer {0} already registered with number {1} at record id {2}. Maybe forgot to call isRegistered(customer) ?", customer, customer.getCustomerNumber(), customer.getCustomerId()));
 	}
 }
diff --git a/src/org/mxchange/jshopcore/model/customer/Customer.java b/src/org/mxchange/jshopcore/model/customer/Customer.java
index 792d639..d3a1620 100644
--- a/src/org/mxchange/jshopcore/model/customer/Customer.java
+++ b/src/org/mxchange/jshopcore/model/customer/Customer.java
@@ -123,4 +123,18 @@ public interface Customer extends Contact {
 	 * @param customerStatus Account status
 	 */
 	public void setCustomerStatus (final String customerStatus);
+
+	/**
+	 * Getter for customer id number
+	 *
+	 * @return Customer id number
+	 */
+	public Long getCustomerId ();
+
+	/**
+	 * Settte for customer id number
+	 *
+	 * @param customerId Customer id number
+	 */
+	public void setCustomerId (final Long customerId);
 }
diff --git a/src/org/mxchange/jshopcore/model/customer/ShopCustomer.java b/src/org/mxchange/jshopcore/model/customer/ShopCustomer.java
index 509c06c..9b8331b 100644
--- a/src/org/mxchange/jshopcore/model/customer/ShopCustomer.java
+++ b/src/org/mxchange/jshopcore/model/customer/ShopCustomer.java
@@ -17,6 +17,17 @@
 package org.mxchange.jshopcore.model.customer;
 
 import java.sql.Timestamp;
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+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 javax.persistence.Temporal;
+import javax.persistence.TemporalType;
 import org.mxchange.jcore.model.contact.BaseContact;
 
 /**
@@ -24,45 +35,68 @@ import org.mxchange.jcore.model.contact.BaseContact;
  *
  * @author Roland Haeder<roland@mxchange.org>
  */
+@Entity (name = "Customer")
+@Table (name = "customer")
 public class ShopCustomer extends BaseContact implements Customer {
+
+	/**
+	 * Serial number
+	 */
+	private static final long serialVersionUID = 4_328_454_581_751L;
+
 	/**
-	 * Id number from "contact" table
+	 * Customer id
 	 */
+	@Id
+	@Column (name = "id", nullable = false, length = 20)
+	@GeneratedValue(strategy = GenerationType.IDENTITY)
+	private Long customerId;
+
+	/**
+	 * Id number from "contacts" table
+	 */
+	@JoinColumn (table = "contacts", unique = true)
+	@OneToOne (optional = false, targetEntity = BaseContact.class, orphanRemoval = true)
+	@Column (name = "customer_contact_id", nullable = false, length = 20)
 	private long contactId;
 
 	/**
 	 * Confirmation key
 	 */
+	@Column (name = "customer_confirm_key", length = 50)
 	private String customerConfirmKey;
 
 	/**
 	 * "created" timestamp
 	 */
+	@Basic(optional = false)
+	@Temporal (TemporalType.TIMESTAMP)
+	@Column (name = "customer_created", nullable = false)
 	private Timestamp customerCreated;
 
 	/**
 	 * "locked" timestamp
 	 */
+	@Temporal (TemporalType.TIMESTAMP)
+	@Column (name = "customer_locked")
 	private Timestamp customerLocked;
 
 	/**
-	 * Customer number, this is different to the database entry id.
+	 * Customer number, this is different to the database entry customerId.
 	 */
+	@Column (name = "customer_number", nullable = false, length = 20)
 	private String customerNumber;
 
-	/**
-	 * Serial number
-	 */
-	private static final long serialVersionUID = 4_328_454_581_751L;
-
 	/**
 	 * Password hash
 	 */
+	@Column (name = "customer_password_hash")
 	private String customerPasswordHash;
 
 	/**
 	 * Account status
 	 */
+	@Column (name = "customer_status", nullable = false)
 	private String customerStatus;
 
 	@Override
@@ -134,4 +168,14 @@ public class ShopCustomer extends BaseContact implements Customer {
 	public void setCustomerStatus (final String customerStatus) {
 		this.customerStatus = customerStatus;
 	}
+
+	@Override
+	public Long getCustomerId () {
+		return this.customerId;
+	}
+
+	@Override
+	public void setCustomerId (final Long customerId) {
+		this.customerId = customerId;
+	}
 }
diff --git a/src/org/mxchange/jshopcore/model/order/Orderable.java b/src/org/mxchange/jshopcore/model/order/Orderable.java
new file mode 100644
index 0000000..93f75ff
--- /dev/null
+++ b/src/org/mxchange/jshopcore/model/order/Orderable.java
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jshopcore.model.order;
+
+import java.io.Serializable;
+import java.sql.Timestamp;
+
+/**
+ * An interface for customer orders
+ *
+ * @author Roland Haeder
+ */
+public interface Orderable extends Serializable {
+
+	/**
+	 * Getter for order id
+	 *
+	 * @return Order id
+	 */
+	public Long getId ();
+
+	/**
+	 * Setter for order id
+	 *
+	 * @param id Order id
+	 */
+	public void setId (final Long id);
+
+	/**
+	 * Getter for customer id
+	 *
+	 * @return Customer id
+	 */
+	public Long getCustomerId ();
+
+	/**
+	 * Setter for customer id
+	 *
+	 * @param customerId Customer id
+	 */
+	public void setCustomerId (final Long customerId);
+
+	/**
+	 * Getter for created timestamp
+	 *
+	 * @return Created timestamp
+	 */
+	public Timestamp getCreated ();
+
+	/**
+	 * Setter for created timestamp
+	 *
+	 * @param created Created timestamp
+	 */
+	public void setCreated (final Timestamp created);
+}
diff --git a/src/org/mxchange/jshopcore/model/order/ShopOrder.java b/src/org/mxchange/jshopcore/model/order/ShopOrder.java
new file mode 100644
index 0000000..65361ee
--- /dev/null
+++ b/src/org/mxchange/jshopcore/model/order/ShopOrder.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (C) 2015 Roland Haeder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jshopcore.model.order;
+
+import java.sql.Timestamp;
+import javax.persistence.Basic;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+
+/**
+ * An entity class for shop orders
+ *
+ * @author Roland Haeder
+ */
+@Entity (name = "Orders")
+@Table (name = "orders")
+public class ShopOrder implements Orderable {
+
+	/**
+	 * Serial number
+	 */
+	private static final long serialVersionUID = 19_728_938_459_834L;
+
+	/**
+	 * Order id
+	 */
+	@Id
+	@GeneratedValue (strategy = GenerationType.IDENTITY)
+	private Long id;
+
+	/**
+	 * Customer id
+	 */
+	@Basic (optional = false)
+	@Column (name = "customer_id", length = 20, nullable = false)
+	private Long customerId;
+
+	/**
+	 * Access key
+	 */
+	@Basic (optional = false)
+	@Column (name = "access_key", length = 100, nullable = false, unique = true)
+	private String accessKey;
+
+	/**
+	 * Created timestamp
+	 */
+	@Basic (optional = false)
+	@Temporal (TemporalType.TIMESTAMP)
+	@Column (nullable = false)
+	private Timestamp created;
+
+	@Override
+	public Timestamp getCreated () {
+		return this.created;
+	}
+
+	@Override
+	public void setCreated (final Timestamp created) {
+		this.created = created;
+	}
+
+	@Override
+	public Long getCustomerId () {
+		return this.customerId;
+	}
+
+	@Override
+	public void setCustomerId (final Long customerId) {
+		this.customerId = customerId;
+	}
+
+	@Override
+	public Long getId () {
+		return this.id;
+	}
+
+	@Override
+	public void setId (final Long id) {
+		this.id = id;
+	}
+}
-- 
2.39.5