From 37e2b6c7cb1fde8b9e7bf8cb38f01eee8157324f Mon Sep 17 00:00:00 2001
From: Fibinger Ádám <adam.fibinger@wup.hu>
Date: Wed, 27 Feb 2019 14:47:00 +0100
Subject: [PATCH] JPA + Hibernate working version (H2 console enabled)

---
 src/main/java/hu/unr/fiber/cardapi/Card.java |   46 +++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 45 insertions(+), 1 deletions(-)

diff --git a/src/main/java/hu/unr/fiber/cardapi/Card.java b/src/main/java/hu/unr/fiber/cardapi/Card.java
index eb30103..b5959be 100644
--- a/src/main/java/hu/unr/fiber/cardapi/Card.java
+++ b/src/main/java/hu/unr/fiber/cardapi/Card.java
@@ -1,10 +1,29 @@
 package hu.unr.fiber.cardapi;
 
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import javax.persistence.*;
+import java.util.Objects;
+
+@Entity
+@Table(name = "Card")
+@JsonIgnoreProperties({"hibernateLazyInitializer", "handler"})
 public class Card {
-    private long id;
+    public static final long INVALID_ID = 0;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", updatable = false, nullable = false)
+    private long id = INVALID_ID;
     private String name;
+    //FIXME: @Pattern([0-9]+)
+    @Column(unique=true)
     private String number;
     private String cardHolder;
+
+    public Card(){
+        super();
+    }
 
     public Card(long id) {
         this.id = id;
@@ -19,6 +38,10 @@
 
     public long getId() {
         return id;
+    }
+
+    public boolean validId() {
+        return (this.getId() != Card.INVALID_ID);
     }
 
     public void setId(long id) {
@@ -48,4 +71,25 @@
     public void setCardHolder(String cardHolder) {
         this.cardHolder = cardHolder;
     }
+
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+        Card card = (Card) o;
+        return id == card.id &&
+                name.equals(card.name) &&
+                number.equals(card.number) &&
+                Objects.equals(cardHolder, card.cardHolder);
+    }
+
+    public void update(Card otherCard) {
+        this.setName(otherCard.getName());
+        this.setNumber(otherCard.getNumber());
+        this.setCardHolder(otherCard.getCardHolder());
+    }
+
+    @Override
+    public String toString() {
+        return "#" + this.number + " - " +  this.name + " @ " + this.cardHolder;
+    }
 }

--
Gitblit v1.8.0