summaryrefslogtreecommitdiffstats
path: root/src/main/java/nu/xss/jpa/entity
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/nu/xss/jpa/entity')
-rw-r--r--src/main/java/nu/xss/jpa/entity/AbstractAutoIdEntity.java28
-rw-r--r--src/main/java/nu/xss/jpa/entity/AbstractEntity.java54
-rw-r--r--src/main/java/nu/xss/jpa/entity/AbstractIdEntity.java25
-rw-r--r--src/main/java/nu/xss/jpa/entity/Entity.java5
-rw-r--r--src/main/java/nu/xss/jpa/entity/TypedEntity.java11
5 files changed, 118 insertions, 5 deletions
diff --git a/src/main/java/nu/xss/jpa/entity/AbstractAutoIdEntity.java b/src/main/java/nu/xss/jpa/entity/AbstractAutoIdEntity.java
new file mode 100644
index 0000000..ee5fd40
--- /dev/null
+++ b/src/main/java/nu/xss/jpa/entity/AbstractAutoIdEntity.java
@@ -0,0 +1,28 @@
+package nu.xss.jpa.entity;
+
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.MappedSuperclass;
+
+@MappedSuperclass
+public abstract class AbstractAutoIdEntity<K> extends AbstractEntity<K> {
+
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ @GeneratedValue
+ private K id;
+
+ @Override
+ public K getId() {
+ return id;
+ }
+
+ @Override
+ public void setId(K id) {
+ this.id = id;
+ }
+
+
+
+}
diff --git a/src/main/java/nu/xss/jpa/entity/AbstractEntity.java b/src/main/java/nu/xss/jpa/entity/AbstractEntity.java
new file mode 100644
index 0000000..5a4f468
--- /dev/null
+++ b/src/main/java/nu/xss/jpa/entity/AbstractEntity.java
@@ -0,0 +1,54 @@
+package nu.xss.jpa.entity;
+
+import javax.persistence.MappedSuperclass;
+
+@MappedSuperclass
+public abstract class AbstractEntity<K> implements TypedEntity<K> {
+
+ private static final long serialVersionUID = 1L;
+
+ public AbstractEntity() {
+ }
+
+ public AbstractEntity(K id) {
+ this.setId(id);
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result
+ + (this.getId() == null ? 0 : this.getId().hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(final Object obj) {
+
+ if (this == obj) {
+ return true;
+ }
+
+ if (obj == null) {
+ return false;
+ }
+
+ if (this.getClass() != obj.getClass()) {
+ return false;
+ }
+
+ final AbstractEntity<?> other = (AbstractEntity<?>) obj;
+
+ if (this.getId() == null) {
+ if (other.getId() != null) {
+ return false;
+ }
+ } else if (!this.getId().equals(other.getId())) {
+ return false;
+ }
+
+ return true;
+ }
+
+}
diff --git a/src/main/java/nu/xss/jpa/entity/AbstractIdEntity.java b/src/main/java/nu/xss/jpa/entity/AbstractIdEntity.java
new file mode 100644
index 0000000..7e1e203
--- /dev/null
+++ b/src/main/java/nu/xss/jpa/entity/AbstractIdEntity.java
@@ -0,0 +1,25 @@
+package nu.xss.jpa.entity;
+
+import javax.persistence.Id;
+import javax.persistence.MappedSuperclass;
+
+@MappedSuperclass
+public abstract class AbstractIdEntity<K> extends AbstractEntity<K> {
+
+ private static final long serialVersionUID = 1L;
+
+ @Id
+ private K id;
+
+ @Override
+ public K getId() {
+ return id;
+ }
+
+ @Override
+ public void setId(K id) {
+ this.id = id;
+ }
+
+
+}
diff --git a/src/main/java/nu/xss/jpa/entity/Entity.java b/src/main/java/nu/xss/jpa/entity/Entity.java
deleted file mode 100644
index 1943e80..0000000
--- a/src/main/java/nu/xss/jpa/entity/Entity.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package nu.xss.jpa.entity;
-
-public class Entity {
-
-}
diff --git a/src/main/java/nu/xss/jpa/entity/TypedEntity.java b/src/main/java/nu/xss/jpa/entity/TypedEntity.java
new file mode 100644
index 0000000..d08ff0f
--- /dev/null
+++ b/src/main/java/nu/xss/jpa/entity/TypedEntity.java
@@ -0,0 +1,11 @@
+package nu.xss.jpa.entity;
+
+import java.io.Serializable;
+
+public interface TypedEntity<K> extends Serializable {
+
+ K getId();
+
+ void setId(K id);
+
+}