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