From de53739bf087f3937e734b7f865031eef0f48be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20L=C3=A1szl=C3=B3=20Hajba?= Date: Thu, 2 Oct 2014 17:09:22 +0200 Subject: [PATCH 01/10] simple entities, manager and pages --- .../hahamo/dev/enterprise/example/Circle.java | 19 +++++++++++ .../hahamo/dev/enterprise/example/Shape.java | 21 ++++++++++++ .../enterprise/example/ShapeRepository.java | 19 +++++++++++ .../dev/enterprise/example/TestBean.java | 32 +++++++++++++++++++ .../main/resources/META-INF/persistence.xml | 3 +- .../webapp/WEB-INF/.faces-config.xml.jsfdia | 5 +++ .../src/main/webapp/WEB-INF/faces-config.xml | 22 ++++++------- .../webapp/WEB-INF/templates/Template.xhtml | 32 +++++++++++++++++++ .../webapp/WEB-INF/templates/footer.xhtml | 11 +++++++ .../webapp/WEB-INF/templates/header.xhtml | 7 ++++ example/src/main/webapp/test.xhtml | 16 ++++++++++ 11 files changed, 175 insertions(+), 12 deletions(-) create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java create mode 100644 example/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia create mode 100644 example/src/main/webapp/WEB-INF/templates/Template.xhtml create mode 100644 example/src/main/webapp/WEB-INF/templates/footer.xhtml create mode 100644 example/src/main/webapp/WEB-INF/templates/header.xhtml create mode 100644 example/src/main/webapp/test.xhtml diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java new file mode 100644 index 0000000..67e260f --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java @@ -0,0 +1,19 @@ +package biz.hahamo.dev.enterprise.example; + +import javax.persistence.Column; +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorValue(value = "CIRCLE") +public class Circle extends Shape { + + private static final long serialVersionUID = 667923770892268408L; + + @Column(name = "RADIUS") + private Integer radius; + +} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java new file mode 100644 index 0000000..3c02fdf --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java @@ -0,0 +1,21 @@ +package biz.hahamo.dev.enterprise.example; + +import java.io.Serializable; + +import javax.persistence.DiscriminatorColumn; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorColumn(name="TYPE") +public class Shape implements Serializable { + + private static final long serialVersionUID = 8917616829186723579L; + + @Id + private String idString; + +} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java new file mode 100644 index 0000000..e3f1fbb --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java @@ -0,0 +1,19 @@ +package biz.hahamo.dev.enterprise.example; + +import java.util.List; + +import javax.ejb.Stateless; +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +@Stateless +public class ShapeRepository { + + @PersistenceContext + private EntityManager em; + + public List findAll() { + return em.createQuery("SELECT s FROM Shape s", Shape.class).getResultList(); + } + +} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java new file mode 100644 index 0000000..fcf83f8 --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java @@ -0,0 +1,32 @@ +/** + * + */ +package biz.hahamo.dev.enterprise.example; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; +import javax.faces.event.ActionEvent; +import javax.inject.Inject; + +/** + * @author gaborh + * + */ +@SessionScoped +public class TestBean { + + @Inject + private ShapeRepository repo; + + public TestBean() { + } + + public void testIt(ActionEvent event){ + + //Get submit button id +// buttonId = event.getComponent().getClientId(); + System.out.println("TestIt"); + repo.findAll(); + + } +} diff --git a/example/src/main/resources/META-INF/persistence.xml b/example/src/main/resources/META-INF/persistence.xml index caccbfc..6bc3dce 100644 --- a/example/src/main/resources/META-INF/persistence.xml +++ b/example/src/main/resources/META-INF/persistence.xml @@ -29,7 +29,8 @@ - + + diff --git a/example/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia b/example/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia new file mode 100644 index 0000000..213b31e --- /dev/null +++ b/example/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia @@ -0,0 +1,5 @@ + + + + diff --git a/example/src/main/webapp/WEB-INF/faces-config.xml b/example/src/main/webapp/WEB-INF/faces-config.xml index fd4b3df..d43e374 100644 --- a/example/src/main/webapp/WEB-INF/faces-config.xml +++ b/example/src/main/webapp/WEB-INF/faces-config.xml @@ -14,17 +14,17 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ---> - - - - - + + + testBean + biz.hahamo.dev.enterprise.example.TestBean + request + + - diff --git a/example/src/main/webapp/WEB-INF/templates/Template.xhtml b/example/src/main/webapp/WEB-INF/templates/Template.xhtml new file mode 100644 index 0000000..46ca454 --- /dev/null +++ b/example/src/main/webapp/WEB-INF/templates/Template.xhtml @@ -0,0 +1,32 @@ + + + + <ui:insert name="title">Default title</ui:insert> + + + + + + + + +
+ + +
+ + + + + + diff --git a/example/src/main/webapp/WEB-INF/templates/footer.xhtml b/example/src/main/webapp/WEB-INF/templates/footer.xhtml new file mode 100644 index 0000000..865356f --- /dev/null +++ b/example/src/main/webapp/WEB-INF/templates/footer.xhtml @@ -0,0 +1,11 @@ + + + + + +Insert title here + + +
+ + diff --git a/example/src/main/webapp/WEB-INF/templates/header.xhtml b/example/src/main/webapp/WEB-INF/templates/header.xhtml new file mode 100644 index 0000000..200e36e --- /dev/null +++ b/example/src/main/webapp/WEB-INF/templates/header.xhtml @@ -0,0 +1,7 @@ + + + + +
My Facelet Application
+ + diff --git a/example/src/main/webapp/test.xhtml b/example/src/main/webapp/test.xhtml new file mode 100644 index 0000000..604fab8 --- /dev/null +++ b/example/src/main/webapp/test.xhtml @@ -0,0 +1,16 @@ + + + + + + + + + + + + \ No newline at end of file From 274ee92a43bc89d9b59599099a31edf371662cfa Mon Sep 17 00:00:00 2001 From: GHajba Date: Thu, 2 Oct 2014 22:02:22 +0200 Subject: [PATCH 02/10] added one more shape and some configuration --- .../hahamo/dev/enterprise/example/Circle.java | 8 ++++++ .../hahamo/dev/enterprise/example/Shape.java | 8 ++++++ .../dev/enterprise/example/TestBean.java | 13 +++++++-- .../dev/enterprise/example/Triangle.java | 27 +++++++++++++++++++ .../main/resources/META-INF/persistence.xml | 2 +- example/src/main/resources/scripts/create.sql | 4 +++ 6 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/Triangle.java create mode 100644 example/src/main/resources/scripts/create.sql diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java index 67e260f..3aa789f 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java @@ -16,4 +16,12 @@ public class Circle extends Shape { @Column(name = "RADIUS") private Integer radius; + public Integer getRadius() { + return radius; + } + + public void setRadius(Integer radius) { + this.radius = radius; + } + } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java index 3c02fdf..0c7c024 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java @@ -18,4 +18,12 @@ public class Shape implements Serializable { @Id private String idString; + public String getIdString() { + return idString; + } + + public void setIdString(String idString) { + this.idString = idString; + } + } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java index fcf83f8..d47e0d8 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java @@ -3,13 +3,15 @@ */ package biz.hahamo.dev.enterprise.example; +import java.util.List; + import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.faces.event.ActionEvent; import javax.inject.Inject; /** - * @author gaborh + * @author GHajba * */ @SessionScoped @@ -26,7 +28,14 @@ public void testIt(ActionEvent event){ //Get submit button id // buttonId = event.getComponent().getClientId(); System.out.println("TestIt"); - repo.findAll(); + List findAll = repo.findAll(); + System.out.println(findAll.size()); + Shape s = findAll.get(0); + System.out.println(s.getClass()); + Circle c = (Circle) s; + System.out.println(c.getRadius()); + Triangle t = (Triangle) findAll.get(1); + System.out.println(t.getEqualSites()); } } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/Triangle.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/Triangle.java new file mode 100644 index 0000000..ff089bd --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/Triangle.java @@ -0,0 +1,27 @@ +package biz.hahamo.dev.enterprise.example; + +import javax.persistence.Column; +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorValue("TRIANGLE") +public class Triangle extends Shape { + + private static final long serialVersionUID = -1783113903772499963L; + + @Column(name = "EQUAL_SITES") + private Boolean equalSites; + + public Boolean getEqualSites() { + return equalSites; + } + + public void setEqualSites(Boolean equalSites) { + this.equalSites = equalSites; + } + +} diff --git a/example/src/main/resources/META-INF/persistence.xml b/example/src/main/resources/META-INF/persistence.xml index 6bc3dce..d74e15d 100644 --- a/example/src/main/resources/META-INF/persistence.xml +++ b/example/src/main/resources/META-INF/persistence.xml @@ -28,7 +28,7 @@ java:jboss/datasources/exampleDS - + diff --git a/example/src/main/resources/scripts/create.sql b/example/src/main/resources/scripts/create.sql new file mode 100644 index 0000000..ae1fa97 --- /dev/null +++ b/example/src/main/resources/scripts/create.sql @@ -0,0 +1,4 @@ +insert into shape (idstring, type) values('1', 'CIRCLE'); +insert into shape (idstring, type) values('2', 'TRIANGLE'); +insert into circle(idstring, radius) values('1', 5); +insert into triangle ( idstring , equal_sites ) values('2', 1); From 364daeb69322fcfcd8b6794a2e01deff7eb03d4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20L=C3=A1szl=C3=B3=20Hajba?= Date: Thu, 2 Oct 2014 22:04:24 +0200 Subject: [PATCH 03/10] Create README.md --- README.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..1275424 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +Java-EE +======= + +Repository for various Java EE related applications From 1484a937b8afd507cfd20f49ce1ec0fe42bd26e2 Mon Sep 17 00:00:00 2001 From: GHajba Date: Fri, 3 Oct 2014 15:52:13 +0200 Subject: [PATCH 04/10] made shape abstract and reorganized some imports --- .../src/main/java/biz/hahamo/dev/enterprise/example/Shape.java | 2 +- .../main/java/biz/hahamo/dev/enterprise/example/TestBean.java | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java index 0c7c024..283ea13 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java @@ -11,7 +11,7 @@ @Entity @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn(name="TYPE") -public class Shape implements Serializable { +public abstract class Shape implements Serializable { private static final long serialVersionUID = 8917616829186723579L; diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java index d47e0d8..42d8890 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java @@ -5,7 +5,6 @@ import java.util.List; -import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped; import javax.faces.event.ActionEvent; import javax.inject.Inject; From 091b6991829a3bba6b9f914aad7be1c7f38d7031 Mon Sep 17 00:00:00 2001 From: GHajba Date: Mon, 6 Oct 2014 19:19:29 +0200 Subject: [PATCH 05/10] a bit of modifications --- example/src/main/resources/scripts/{create.sql => testdata.sql} | 0 example/src/main/webapp/WEB-INF/example-ds.xml | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename example/src/main/resources/scripts/{create.sql => testdata.sql} (100%) diff --git a/example/src/main/resources/scripts/create.sql b/example/src/main/resources/scripts/testdata.sql similarity index 100% rename from example/src/main/resources/scripts/create.sql rename to example/src/main/resources/scripts/testdata.sql diff --git a/example/src/main/webapp/WEB-INF/example-ds.xml b/example/src/main/webapp/WEB-INF/example-ds.xml index b2832cf..f47eace 100644 --- a/example/src/main/webapp/WEB-INF/example-ds.xml +++ b/example/src/main/webapp/WEB-INF/example-ds.xml @@ -26,7 +26,7 @@ - jdbc:h2:file:example + jdbc:h2:file:example;DB_CLOSE_ON_EXIT=FALSE h2 sa From c65bbd0c15feaaca0665036c3b219d879f5be586 Mon Sep 17 00:00:00 2001 From: Gabor Date: Fri, 17 Oct 2014 06:55:16 +0200 Subject: [PATCH 06/10] moved entities to package, preparing multiple inheritance examples --- .../hahamo/dev/enterprise/example/Circle.java | 27 ---------------- .../hahamo/dev/enterprise/example/Shape.java | 29 ----------------- .../enterprise/example/ShapeRepository.java | 2 ++ .../dev/enterprise/example/TestBean.java | 4 +++ .../dev/enterprise/example/Triangle.java | 27 ---------------- .../dev/enterprise/example/joined/Circle.java | 29 +++++++++++++++++ .../dev/enterprise/example/joined/Shape.java | 31 +++++++++++++++++++ .../enterprise/example/joined/Triangle.java | 29 +++++++++++++++++ .../main/resources/META-INF/persistence.xml | 4 +-- .../src/main/resources/scripts/table_ddl.sql | 8 +++++ 10 files changed, 105 insertions(+), 85 deletions(-) delete mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java delete mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java delete mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/Triangle.java create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Circle.java create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Shape.java create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Triangle.java create mode 100644 example/src/main/resources/scripts/table_ddl.sql diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java deleted file mode 100644 index 3aa789f..0000000 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/Circle.java +++ /dev/null @@ -1,27 +0,0 @@ -package biz.hahamo.dev.enterprise.example; - -import javax.persistence.Column; -import javax.persistence.DiscriminatorValue; -import javax.persistence.Entity; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; - -@Entity -@Inheritance(strategy = InheritanceType.JOINED) -@DiscriminatorValue(value = "CIRCLE") -public class Circle extends Shape { - - private static final long serialVersionUID = 667923770892268408L; - - @Column(name = "RADIUS") - private Integer radius; - - public Integer getRadius() { - return radius; - } - - public void setRadius(Integer radius) { - this.radius = radius; - } - -} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java deleted file mode 100644 index 283ea13..0000000 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/Shape.java +++ /dev/null @@ -1,29 +0,0 @@ -package biz.hahamo.dev.enterprise.example; - -import java.io.Serializable; - -import javax.persistence.DiscriminatorColumn; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; - -@Entity -@Inheritance(strategy = InheritanceType.JOINED) -@DiscriminatorColumn(name="TYPE") -public abstract class Shape implements Serializable { - - private static final long serialVersionUID = 8917616829186723579L; - - @Id - private String idString; - - public String getIdString() { - return idString; - } - - public void setIdString(String idString) { - this.idString = idString; - } - -} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java index e3f1fbb..f627ec5 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java @@ -6,6 +6,8 @@ import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import biz.hahamo.dev.enterprise.example.joined.Shape; + @Stateless public class ShapeRepository { diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java index 42d8890..cf65f66 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java @@ -9,6 +9,10 @@ import javax.faces.event.ActionEvent; import javax.inject.Inject; +import biz.hahamo.dev.enterprise.example.joined.Circle; +import biz.hahamo.dev.enterprise.example.joined.Shape; +import biz.hahamo.dev.enterprise.example.joined.Triangle; + /** * @author GHajba * diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/Triangle.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/Triangle.java deleted file mode 100644 index ff089bd..0000000 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/Triangle.java +++ /dev/null @@ -1,27 +0,0 @@ -package biz.hahamo.dev.enterprise.example; - -import javax.persistence.Column; -import javax.persistence.DiscriminatorValue; -import javax.persistence.Entity; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; - -@Entity -@Inheritance(strategy = InheritanceType.JOINED) -@DiscriminatorValue("TRIANGLE") -public class Triangle extends Shape { - - private static final long serialVersionUID = -1783113903772499963L; - - @Column(name = "EQUAL_SITES") - private Boolean equalSites; - - public Boolean getEqualSites() { - return equalSites; - } - - public void setEqualSites(Boolean equalSites) { - this.equalSites = equalSites; - } - -} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Circle.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Circle.java new file mode 100644 index 0000000..8339d96 --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Circle.java @@ -0,0 +1,29 @@ +package biz.hahamo.dev.enterprise.example.joined; + +import javax.persistence.Column; +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.Table; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorValue(value = "CIRCLE") +@Table(name = "CIRCLE_JOINED") +public class Circle extends Shape { + + private static final long serialVersionUID = 667923770892268408L; + + @Column(name = "RADIUS") + private Integer radius; + + public Integer getRadius() { + return radius; + } + + public void setRadius(Integer radius) { + this.radius = radius; + } + +} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Shape.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Shape.java new file mode 100644 index 0000000..bda6d2d --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Shape.java @@ -0,0 +1,31 @@ +package biz.hahamo.dev.enterprise.example.joined; + +import java.io.Serializable; + +import javax.persistence.DiscriminatorColumn; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.Table; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorColumn(name = "TYPE") +@Table(name = "SHAPE_JOINED") +public abstract class Shape implements Serializable { + + private static final long serialVersionUID = 8917616829186723579L; + + @Id + private String idString; + + public String getIdString() { + return idString; + } + + public void setIdString(String idString) { + this.idString = idString; + } + +} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Triangle.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Triangle.java new file mode 100644 index 0000000..4b8367e --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Triangle.java @@ -0,0 +1,29 @@ +package biz.hahamo.dev.enterprise.example.joined; + +import javax.persistence.Column; +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.Table; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorValue("TRIANGLE") +@Table(name = "TRIANGLE_JOINED") +public class Triangle extends Shape { + + private static final long serialVersionUID = -1783113903772499963L; + + @Column(name = "EQUAL_SITES") + private Boolean equalSites; + + public Boolean getEqualSites() { + return equalSites; + } + + public void setEqualSites(Boolean equalSites) { + this.equalSites = equalSites; + } + +} diff --git a/example/src/main/resources/META-INF/persistence.xml b/example/src/main/resources/META-INF/persistence.xml index d74e15d..bca1817 100644 --- a/example/src/main/resources/META-INF/persistence.xml +++ b/example/src/main/resources/META-INF/persistence.xml @@ -28,9 +28,9 @@ java:jboss/datasources/exampleDS - + - + diff --git a/example/src/main/resources/scripts/table_ddl.sql b/example/src/main/resources/scripts/table_ddl.sql new file mode 100644 index 0000000..99d8f0e --- /dev/null +++ b/example/src/main/resources/scripts/table_ddl.sql @@ -0,0 +1,8 @@ +create table shape_joined (idString varchar(255 char), type varchar(25 char)); +create table triangle_joined(idString varchar(255 char), equal_sites boolean); +create table circle_joined(idString varchar(255 char), radius number); + +create table shape_singletable(idString varchar(255 char), type varchar(25 char), equal_sites boolean, radius number); + +create table triangle_perclass(idString varchar(255 char), type varchar(25 char), equal_sites boolean); +create table circle_perclass(idString varchar(255 char), type varchar(25 char), radius number); \ No newline at end of file From 1f63ccecb087e991efd7e932f2b9e3527bea7f07 Mon Sep 17 00:00:00 2001 From: Gabor Date: Fri, 17 Oct 2014 13:35:29 +0200 Subject: [PATCH 07/10] extended the examples --- .../enterprise/example/ShapeRepository.java | 31 ++++-- .../dev/enterprise/example/TestBean.java | 96 ++++++++++++++----- .../joined/{Circle.java => CircleJoined.java} | 2 +- .../joined/{Shape.java => ShapeJoined.java} | 2 +- .../{Triangle.java => TriangleJoined.java} | 2 +- .../singletable/CircleSingletable.java | 28 ++++++ .../example/singletable/ShapeSingletable.java | 31 ++++++ .../singletable/TriangleSingletable.java | 28 ++++++ .../example/tableperclass/CirclePerclass.java | 28 ++++++ .../example/tableperclass/ShapePerclass.java | 30 ++++++ .../tableperclass/TrianglePerclass.java | 28 ++++++ .../main/resources/META-INF/persistence.xml | 2 +- .../src/main/resources/scripts/table_ddl.sql | 12 +-- .../src/main/resources/scripts/testdata.sql | 14 ++- example/src/main/webapp/test.xhtml | 11 ++- 15 files changed, 297 insertions(+), 48 deletions(-) rename example/src/main/java/biz/hahamo/dev/enterprise/example/joined/{Circle.java => CircleJoined.java} (93%) rename example/src/main/java/biz/hahamo/dev/enterprise/example/joined/{Shape.java => ShapeJoined.java} (92%) rename example/src/main/java/biz/hahamo/dev/enterprise/example/joined/{Triangle.java => TriangleJoined.java} (93%) create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java create mode 100644 example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java index f627ec5..0916161 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java @@ -1,21 +1,36 @@ package biz.hahamo.dev.enterprise.example; +import java.io.Serializable; import java.util.List; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; -import biz.hahamo.dev.enterprise.example.joined.Shape; +import biz.hahamo.dev.enterprise.example.joined.ShapeJoined; +import biz.hahamo.dev.enterprise.example.singletable.ShapeSingletable; +import biz.hahamo.dev.enterprise.example.tableperclass.ShapePerclass; @Stateless public class ShapeRepository { - - @PersistenceContext - private EntityManager em; - - public List findAll() { - return em.createQuery("SELECT s FROM Shape s", Shape.class).getResultList(); - } + + @PersistenceContext + private EntityManager em; + + public List findAllJoined() { + return em.createQuery("SELECT s FROM ShapeJoined s", ShapeJoined.class).getResultList(); + } + + public List findAllSingletable() { + return em.createQuery("SELECT s FROM ShapeSingletable s", ShapeSingletable.class).getResultList(); + } + + public List findAllPerclass() { + return em.createQuery("SELECT s FROM ShapePerclass s", ShapePerclass.class).getResultList(); + } + + public void save(Serializable entity) { + em.persist(entity); + } } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java index cf65f66..dd92477 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java @@ -9,9 +9,12 @@ import javax.faces.event.ActionEvent; import javax.inject.Inject; -import biz.hahamo.dev.enterprise.example.joined.Circle; -import biz.hahamo.dev.enterprise.example.joined.Shape; -import biz.hahamo.dev.enterprise.example.joined.Triangle; +import biz.hahamo.dev.enterprise.example.joined.CircleJoined; +import biz.hahamo.dev.enterprise.example.joined.ShapeJoined; +import biz.hahamo.dev.enterprise.example.singletable.CircleSingletable; +import biz.hahamo.dev.enterprise.example.singletable.ShapeSingletable; +import biz.hahamo.dev.enterprise.example.tableperclass.CirclePerclass; +import biz.hahamo.dev.enterprise.example.tableperclass.ShapePerclass; /** * @author GHajba @@ -19,26 +22,69 @@ */ @SessionScoped public class TestBean { - - @Inject - private ShapeRepository repo; - - public TestBean() { - } - - public void testIt(ActionEvent event){ - - //Get submit button id -// buttonId = event.getComponent().getClientId(); - System.out.println("TestIt"); - List findAll = repo.findAll(); - System.out.println(findAll.size()); - Shape s = findAll.get(0); - System.out.println(s.getClass()); - Circle c = (Circle) s; - System.out.println(c.getRadius()); - Triangle t = (Triangle) findAll.get(1); - System.out.println(t.getEqualSites()); - - } + + @Inject + private ShapeRepository repo; + + public TestBean() { + } + + public void testJoined(ActionEvent event) { + + System.out.println("Test Joined inheritance"); + + List resultList = repo.findAllJoined(); + System.out.println(resultList.size()); + ShapeJoined s = resultList.get(0); + System.out.println(s.getClass()); + CircleJoined c = (CircleJoined) s; + System.out.println(c.getRadius()); + // TriangleJoined t = (TriangleJoined) resultList.get(1); + // System.out.println(t.getEqualSites()); + System.out.println("--------------\n"); + } + + public void testSingletable(ActionEvent event) { + + List resultList = repo.findAllSingletable(); + System.out.println(resultList.size()); + ShapeSingletable s = resultList.get(0); + System.out.println(s.getClass()); + CircleSingletable c = (CircleSingletable) s; + System.out.println(c.getRadius()); + // TriangleJoined t = (TriangleJoined) resultList.get(1); + // System.out.println(t.getEqualSites()); + System.out.println("--------------\n"); + + } + + public void testPerclass(ActionEvent event) { + + List resultList = repo.findAllPerclass(); + System.out.println(resultList.size()); + ShapePerclass s = resultList.get(0); + System.out.println(s.getClass()); + CirclePerclass c = (CirclePerclass) s; + System.out.println(c.getRadius()); + // TriangleJoined t = (TriangleJoined) resultList.get(1); + // System.out.println(t.getEqualSites()); + System.out.println("--------------\n"); + + } + + public void createEntities(ActionEvent event) { + CircleJoined circleJoined = new CircleJoined(); + circleJoined.setIdString("joinedTest"); + circleJoined.setRadius(123); + CircleSingletable circleSingletable = new CircleSingletable(); + circleSingletable.setIdString("singletableTest"); + circleSingletable.setRadius(234); + CirclePerclass circlePerclass = new CirclePerclass(); + circlePerclass.setIdString("perclassTest"); + circlePerclass.setRadius(456); + + repo.save(circleJoined); + repo.save(circlePerclass); + repo.save(circleSingletable); + } } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Circle.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/CircleJoined.java similarity index 93% rename from example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Circle.java rename to example/src/main/java/biz/hahamo/dev/enterprise/example/joined/CircleJoined.java index 8339d96..2c758b1 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Circle.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/CircleJoined.java @@ -11,7 +11,7 @@ @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorValue(value = "CIRCLE") @Table(name = "CIRCLE_JOINED") -public class Circle extends Shape { +public class CircleJoined extends ShapeJoined { private static final long serialVersionUID = 667923770892268408L; diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Shape.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/ShapeJoined.java similarity index 92% rename from example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Shape.java rename to example/src/main/java/biz/hahamo/dev/enterprise/example/joined/ShapeJoined.java index bda6d2d..ece7c83 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Shape.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/ShapeJoined.java @@ -13,7 +13,7 @@ @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorColumn(name = "TYPE") @Table(name = "SHAPE_JOINED") -public abstract class Shape implements Serializable { +public abstract class ShapeJoined implements Serializable { private static final long serialVersionUID = 8917616829186723579L; diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Triangle.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java similarity index 93% rename from example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Triangle.java rename to example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java index 4b8367e..2b771f3 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/Triangle.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java @@ -11,7 +11,7 @@ @Inheritance(strategy = InheritanceType.JOINED) @DiscriminatorValue("TRIANGLE") @Table(name = "TRIANGLE_JOINED") -public class Triangle extends Shape { +public class TriangleJoined extends ShapeJoined { private static final long serialVersionUID = -1783113903772499963L; diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java new file mode 100644 index 0000000..1c949d4 --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java @@ -0,0 +1,28 @@ +package biz.hahamo.dev.enterprise.example.singletable; + +import javax.persistence.Column; +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; + +@Entity +@Inheritance(strategy = InheritanceType.SINGLE_TABLE) +@DiscriminatorValue(value = "CIRCLE") +// @Table(name = "SHAPE_SINGLETABLE") +public class CircleSingletable extends ShapeSingletable { + + private static final long serialVersionUID = 667923770892268408L; + + @Column(name = "RADIUS") + private Integer radius; + + public Integer getRadius() { + return radius; + } + + public void setRadius(Integer radius) { + this.radius = radius; + } + +} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java new file mode 100644 index 0000000..810562d --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java @@ -0,0 +1,31 @@ +package biz.hahamo.dev.enterprise.example.singletable; + +import java.io.Serializable; + +import javax.persistence.DiscriminatorColumn; +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.Table; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorColumn(name = "TYPE") +@Table(name = "SHAPE_SINGLETABLE") +public abstract class ShapeSingletable implements Serializable { + + private static final long serialVersionUID = 8917616829186723579L; + + @Id + private String idString; + + public String getIdString() { + return idString; + } + + public void setIdString(String idString) { + this.idString = idString; + } + +} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java new file mode 100644 index 0000000..79e7332 --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java @@ -0,0 +1,28 @@ +package biz.hahamo.dev.enterprise.example.singletable; + +import javax.persistence.Column; +import javax.persistence.DiscriminatorValue; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorValue("TRIANGLE") +// @Table(name = "TRIANGLE_SINGLETABLE") +public class TriangleSingletable extends ShapeSingletable { + + private static final long serialVersionUID = -1783113903772499963L; + + @Column(name = "EQUAL_SITES") + private Boolean equalSites; + + public Boolean getEqualSites() { + return equalSites; + } + + public void setEqualSites(Boolean equalSites) { + this.equalSites = equalSites; + } + +} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java new file mode 100644 index 0000000..33508cd --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java @@ -0,0 +1,28 @@ +package biz.hahamo.dev.enterprise.example.tableperclass; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.Table; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +// @DiscriminatorValue(value = "CIRCLE") +@Table(name = "CIRCLE_PERCLASS") +public class CirclePerclass extends ShapePerclass { + + private static final long serialVersionUID = 667923770892268408L; + + @Column(name = "RADIUS") + private Integer radius; + + public Integer getRadius() { + return radius; + } + + public void setRadius(Integer radius) { + this.radius = radius; + } + +} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java new file mode 100644 index 0000000..492d91f --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java @@ -0,0 +1,30 @@ +package biz.hahamo.dev.enterprise.example.tableperclass; + +import java.io.Serializable; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.Table; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +// @DiscriminatorColumn(name = "TYPE") +@Table(name = "SHAPE_PERCLASS") +public abstract class ShapePerclass implements Serializable { + + private static final long serialVersionUID = 8917616829186723579L; + + @Id + private String idString; + + public String getIdString() { + return idString; + } + + public void setIdString(String idString) { + this.idString = idString; + } + +} diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java new file mode 100644 index 0000000..203ce16 --- /dev/null +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java @@ -0,0 +1,28 @@ +package biz.hahamo.dev.enterprise.example.tableperclass; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Inheritance; +import javax.persistence.InheritanceType; +import javax.persistence.Table; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +// @DiscriminatorValue("TRIANGLE") +@Table(name = "TRIANGLE_PERCLASS") +public class TrianglePerclass extends ShapePerclass { + + private static final long serialVersionUID = -1783113903772499963L; + + @Column(name = "EQUAL_SITES") + private Boolean equalSites; + + public Boolean getEqualSites() { + return equalSites; + } + + public void setEqualSites(Boolean equalSites) { + this.equalSites = equalSites; + } + +} diff --git a/example/src/main/resources/META-INF/persistence.xml b/example/src/main/resources/META-INF/persistence.xml index bca1817..62939c3 100644 --- a/example/src/main/resources/META-INF/persistence.xml +++ b/example/src/main/resources/META-INF/persistence.xml @@ -28,7 +28,7 @@ java:jboss/datasources/exampleDS - + diff --git a/example/src/main/resources/scripts/table_ddl.sql b/example/src/main/resources/scripts/table_ddl.sql index 99d8f0e..6381628 100644 --- a/example/src/main/resources/scripts/table_ddl.sql +++ b/example/src/main/resources/scripts/table_ddl.sql @@ -1,8 +1,8 @@ -create table shape_joined (idString varchar(255 char), type varchar(25 char)); -create table triangle_joined(idString varchar(255 char), equal_sites boolean); -create table circle_joined(idString varchar(255 char), radius number); +create table shape_joined (idString varchar(255 char) primary key, type varchar(25 char)); +create table triangle_joined(idString varchar(255 char) primary key, equal_sites boolean); +create table circle_joined(idString varchar(255 char) primary key, radius number); -create table shape_singletable(idString varchar(255 char), type varchar(25 char), equal_sites boolean, radius number); +create table shape_singletable(idString varchar(255 char) primary key, type varchar(25 char), equal_sites boolean, radius number); -create table triangle_perclass(idString varchar(255 char), type varchar(25 char), equal_sites boolean); -create table circle_perclass(idString varchar(255 char), type varchar(25 char), radius number); \ No newline at end of file +create table triangle_perclass(idString varchar(255 char) primary key, type varchar(25 char), equal_sites boolean); +create table circle_perclass(idString varchar(255 char) primary key, type varchar(25 char), radius number); \ No newline at end of file diff --git a/example/src/main/resources/scripts/testdata.sql b/example/src/main/resources/scripts/testdata.sql index ae1fa97..6fa604c 100644 --- a/example/src/main/resources/scripts/testdata.sql +++ b/example/src/main/resources/scripts/testdata.sql @@ -1,4 +1,10 @@ -insert into shape (idstring, type) values('1', 'CIRCLE'); -insert into shape (idstring, type) values('2', 'TRIANGLE'); -insert into circle(idstring, radius) values('1', 5); -insert into triangle ( idstring , equal_sites ) values('2', 1); +insert into ShapeJoind (idstring, type) values('1', 'CIRCLE'); +insert into ShapeJoind (idstring, type) values('2', 'TRIANGLE'); +insert into CircleJoined (idstring, radius) values('1', 5); +insert into TriangleJoined ( idstring , equal_sites ) values('2', 1); + +insert into ShapeSingletable (idString, type, radius, equal_sites) values ('1', 'CIRCLE'); +insert into ShapeSingletable (idString, type, radius, equal_sites) values ('2', 'TRIANGLE'); + +insert into CirclePerclass () values(); +insert into TrianglePerclass () values(); \ No newline at end of file diff --git a/example/src/main/webapp/test.xhtml b/example/src/main/webapp/test.xhtml index 604fab8..6eb1e77 100644 --- a/example/src/main/webapp/test.xhtml +++ b/example/src/main/webapp/test.xhtml @@ -9,7 +9,16 @@ - + + + + + + + + + + From e33d17ec789242a13fa9599c2c1f905e7db2b113 Mon Sep 17 00:00:00 2001 From: Gabor Date: Mon, 20 Oct 2014 06:04:21 +0200 Subject: [PATCH 08/10] fixed inheritance examples --- .../dev/enterprise/example/joined/CircleJoined.java | 12 +++--------- .../dev/enterprise/example/joined/ShapeJoined.java | 6 ++---- .../enterprise/example/joined/TriangleJoined.java | 13 ++++--------- .../example/singletable/CircleSingletable.java | 10 ++-------- .../example/singletable/ShapeSingletable.java | 8 +++----- .../example/singletable/TriangleSingletable.java | 10 ++-------- .../example/tableperclass/CirclePerclass.java | 10 ++-------- .../example/tableperclass/ShapePerclass.java | 5 +---- .../example/tableperclass/TrianglePerclass.java | 10 ++-------- example/src/main/resources/META-INF/persistence.xml | 2 +- example/src/main/resources/scripts/table_ddl.sql | 12 ++++++------ example/src/main/resources/scripts/testdata.sql | 12 ++++++------ 12 files changed, 34 insertions(+), 76 deletions(-) diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/CircleJoined.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/CircleJoined.java index 2c758b1..3d06e12 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/CircleJoined.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/CircleJoined.java @@ -1,21 +1,15 @@ package biz.hahamo.dev.enterprise.example.joined; -import javax.persistence.Column; -import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; -import javax.persistence.Table; @Entity -@Inheritance(strategy = InheritanceType.JOINED) -@DiscriminatorValue(value = "CIRCLE") -@Table(name = "CIRCLE_JOINED") +// @DiscriminatorValue(value = "CIRCLE") +// @Table(name = "CIRCLE_JOINED") public class CircleJoined extends ShapeJoined { private static final long serialVersionUID = 667923770892268408L; - @Column(name = "RADIUS") + // @Column(name = "RADIUS") private Integer radius; public Integer getRadius() { diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/ShapeJoined.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/ShapeJoined.java index ece7c83..3a9ef00 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/ShapeJoined.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/ShapeJoined.java @@ -2,17 +2,15 @@ import java.io.Serializable; -import javax.persistence.DiscriminatorColumn; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; -import javax.persistence.Table; @Entity @Inheritance(strategy = InheritanceType.JOINED) -@DiscriminatorColumn(name = "TYPE") -@Table(name = "SHAPE_JOINED") +// @DiscriminatorColumn(name = "TYPE") +// @Table(name = "SHAPE_JOINED") public abstract class ShapeJoined implements Serializable { private static final long serialVersionUID = 8917616829186723579L; diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java index 2b771f3..2a20df0 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java @@ -1,21 +1,16 @@ package biz.hahamo.dev.enterprise.example.joined; -import javax.persistence.Column; -import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; -import javax.persistence.Table; @Entity -@Inheritance(strategy = InheritanceType.JOINED) -@DiscriminatorValue("TRIANGLE") -@Table(name = "TRIANGLE_JOINED") +// @Inheritance(strategy = InheritanceType.JOINED) +// @DiscriminatorValue("TRIANGLE") +// @Table(name = "TRIANGLE_JOINED") public class TriangleJoined extends ShapeJoined { private static final long serialVersionUID = -1783113903772499963L; - @Column(name = "EQUAL_SITES") + // @Column(name = "EQUAL_SITES") private Boolean equalSites; public Boolean getEqualSites() { diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java index 1c949d4..e555fab 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java @@ -1,20 +1,14 @@ package biz.hahamo.dev.enterprise.example.singletable; -import javax.persistence.Column; -import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; @Entity -@Inheritance(strategy = InheritanceType.SINGLE_TABLE) -@DiscriminatorValue(value = "CIRCLE") -// @Table(name = "SHAPE_SINGLETABLE") +// @DiscriminatorValue(value = "CIRCLE") public class CircleSingletable extends ShapeSingletable { private static final long serialVersionUID = 667923770892268408L; - @Column(name = "RADIUS") + // @Column(name = "RADIUS") private Integer radius; public Integer getRadius() { diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java index 810562d..1f2718a 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java @@ -2,17 +2,15 @@ import java.io.Serializable; -import javax.persistence.DiscriminatorColumn; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; -import javax.persistence.Table; @Entity -@Inheritance(strategy = InheritanceType.JOINED) -@DiscriminatorColumn(name = "TYPE") -@Table(name = "SHAPE_SINGLETABLE") +@Inheritance(strategy = InheritanceType.SINGLE_TABLE) +// @DiscriminatorColumn(name = "TYPE") +// @Table(name = "SHAPE_SINGLETABLE") public abstract class ShapeSingletable implements Serializable { private static final long serialVersionUID = 8917616829186723579L; diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java index 79e7332..c84264b 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java @@ -1,20 +1,14 @@ package biz.hahamo.dev.enterprise.example.singletable; -import javax.persistence.Column; -import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; @Entity -@Inheritance(strategy = InheritanceType.JOINED) -@DiscriminatorValue("TRIANGLE") -// @Table(name = "TRIANGLE_SINGLETABLE") +// @DiscriminatorValue("TRIANGLE") public class TriangleSingletable extends ShapeSingletable { private static final long serialVersionUID = -1783113903772499963L; - @Column(name = "EQUAL_SITES") + // @Column(name = "EQUAL_SITES") private Boolean equalSites; public Boolean getEqualSites() { diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java index 33508cd..4dc08ca 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java @@ -1,20 +1,14 @@ package biz.hahamo.dev.enterprise.example.tableperclass; -import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; -import javax.persistence.Table; @Entity -@Inheritance(strategy = InheritanceType.JOINED) -// @DiscriminatorValue(value = "CIRCLE") -@Table(name = "CIRCLE_PERCLASS") +// @Table(name = "CIRCLE_PERCLASS") public class CirclePerclass extends ShapePerclass { private static final long serialVersionUID = 667923770892268408L; - @Column(name = "RADIUS") + // @Column(name = "RADIUS") private Integer radius; public Integer getRadius() { diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java index 492d91f..4407b21 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java @@ -6,12 +6,9 @@ import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; -import javax.persistence.Table; @Entity -@Inheritance(strategy = InheritanceType.JOINED) -// @DiscriminatorColumn(name = "TYPE") -@Table(name = "SHAPE_PERCLASS") +@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public abstract class ShapePerclass implements Serializable { private static final long serialVersionUID = 8917616829186723579L; diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java index 203ce16..9be8602 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java @@ -1,20 +1,14 @@ package biz.hahamo.dev.enterprise.example.tableperclass; -import javax.persistence.Column; import javax.persistence.Entity; -import javax.persistence.Inheritance; -import javax.persistence.InheritanceType; -import javax.persistence.Table; @Entity -@Inheritance(strategy = InheritanceType.JOINED) -// @DiscriminatorValue("TRIANGLE") -@Table(name = "TRIANGLE_PERCLASS") +// @Table(name = "TRIANGLE_PERCLASS") public class TrianglePerclass extends ShapePerclass { private static final long serialVersionUID = -1783113903772499963L; - @Column(name = "EQUAL_SITES") + // @Column(name = "EQUAL_SITES") private Boolean equalSites; public Boolean getEqualSites() { diff --git a/example/src/main/resources/META-INF/persistence.xml b/example/src/main/resources/META-INF/persistence.xml index 62939c3..bca1817 100644 --- a/example/src/main/resources/META-INF/persistence.xml +++ b/example/src/main/resources/META-INF/persistence.xml @@ -28,7 +28,7 @@ java:jboss/datasources/exampleDS - + diff --git a/example/src/main/resources/scripts/table_ddl.sql b/example/src/main/resources/scripts/table_ddl.sql index 6381628..e334286 100644 --- a/example/src/main/resources/scripts/table_ddl.sql +++ b/example/src/main/resources/scripts/table_ddl.sql @@ -1,8 +1,8 @@ -create table shape_joined (idString varchar(255 char) primary key, type varchar(25 char)); -create table triangle_joined(idString varchar(255 char) primary key, equal_sites boolean); -create table circle_joined(idString varchar(255 char) primary key, radius number); +create table shapejoined (idString varchar(255 char) primary key); +create table trianglejoined(idString varchar(255 char) primary key, equalsites boolean); +create table circlejoined(idString varchar(255 char) primary key, radius number); -create table shape_singletable(idString varchar(255 char) primary key, type varchar(25 char), equal_sites boolean, radius number); +create table shapesingletable(idString varchar(255 char) primary key, dtype varchar(25 char), equalsites boolean, radius number); -create table triangle_perclass(idString varchar(255 char) primary key, type varchar(25 char), equal_sites boolean); -create table circle_perclass(idString varchar(255 char) primary key, type varchar(25 char), radius number); \ No newline at end of file +create table triangleperclass(idString varchar(255 char) primary key, equalsites boolean); +create table circleperclass(idString varchar(255 char) primary key, radius number); \ No newline at end of file diff --git a/example/src/main/resources/scripts/testdata.sql b/example/src/main/resources/scripts/testdata.sql index 6fa604c..7fca38a 100644 --- a/example/src/main/resources/scripts/testdata.sql +++ b/example/src/main/resources/scripts/testdata.sql @@ -1,10 +1,10 @@ -insert into ShapeJoind (idstring, type) values('1', 'CIRCLE'); -insert into ShapeJoind (idstring, type) values('2', 'TRIANGLE'); +insert into ShapeJoined (idstring) values('1'); +insert into ShapeJoined (idstring) values('2'); insert into CircleJoined (idstring, radius) values('1', 5); insert into TriangleJoined ( idstring , equal_sites ) values('2', 1); -insert into ShapeSingletable (idString, type, radius, equal_sites) values ('1', 'CIRCLE'); -insert into ShapeSingletable (idString, type, radius, equal_sites) values ('2', 'TRIANGLE'); +insert into ShapeSingletable (idString, dtype, radius, equalsites) values ('1', 'CircleJoined', 42, null); +insert into ShapeSingletable (idString, dtype, radius, equalsites) values ('2', 'TriangleJoined', null, 0); -insert into CirclePerclass () values(); -insert into TrianglePerclass () values(); \ No newline at end of file +insert into CirclePerclass (idString, radius) values('1', 23); +insert into TrianglePerclass (idString, equalsites) values('2', 1); \ No newline at end of file From 21471d8d21bec86c481cecdb255e3b4ed2d0ef20 Mon Sep 17 00:00:00 2001 From: Gabor Date: Mon, 20 Oct 2014 15:55:32 +0200 Subject: [PATCH 09/10] some corrections --- .../biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java | 1 - 1 file changed, 1 deletion(-) diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java index 2a20df0..6e39a64 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java @@ -3,7 +3,6 @@ import javax.persistence.Entity; @Entity -// @Inheritance(strategy = InheritanceType.JOINED) // @DiscriminatorValue("TRIANGLE") // @Table(name = "TRIANGLE_JOINED") public class TriangleJoined extends ShapeJoined { From 78313d9809badf2bf5f30f29b935e97b90316fed Mon Sep 17 00:00:00 2001 From: Gabor Date: Tue, 21 Oct 2014 07:59:27 +0200 Subject: [PATCH 10/10] made examples a bit better --- .../enterprise/example/ShapeRepository.java | 3 ++ .../dev/enterprise/example/TestBean.java | 52 ++++++++++++------- .../example/joined/CircleJoined.java | 7 ++- .../example/joined/ShapeJoined.java | 7 ++- .../example/joined/TriangleJoined.java | 7 ++- .../singletable/CircleSingletable.java | 4 ++ .../example/singletable/ShapeSingletable.java | 7 ++- .../singletable/TriangleSingletable.java | 7 ++- .../example/tableperclass/CirclePerclass.java | 5 ++ .../example/tableperclass/ShapePerclass.java | 5 ++ .../tableperclass/TrianglePerclass.java | 4 ++ .../webapp/WEB-INF/templates/footer.xhtml | 2 +- .../webapp/WEB-INF/templates/header.xhtml | 2 +- example/src/main/webapp/index.html | 2 +- 14 files changed, 87 insertions(+), 27 deletions(-) diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java index 0916161..e09c1a2 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/ShapeRepository.java @@ -33,4 +33,7 @@ public void save(Serializable entity) { em.persist(entity); } + public T find(Class entityClass, String idString) { + return em.find(entityClass, idString); + } } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java index dd92477..6a49ab0 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/TestBean.java @@ -11,14 +11,18 @@ import biz.hahamo.dev.enterprise.example.joined.CircleJoined; import biz.hahamo.dev.enterprise.example.joined.ShapeJoined; +import biz.hahamo.dev.enterprise.example.joined.TriangleJoined; import biz.hahamo.dev.enterprise.example.singletable.CircleSingletable; import biz.hahamo.dev.enterprise.example.singletable.ShapeSingletable; +import biz.hahamo.dev.enterprise.example.singletable.TriangleSingletable; import biz.hahamo.dev.enterprise.example.tableperclass.CirclePerclass; import biz.hahamo.dev.enterprise.example.tableperclass.ShapePerclass; +import biz.hahamo.dev.enterprise.example.tableperclass.TrianglePerclass; /** + * This is a simple test bean to make the connection between the GUI and the repository. + * * @author GHajba - * */ @SessionScoped public class TestBean { @@ -35,12 +39,12 @@ public void testJoined(ActionEvent event) { List resultList = repo.findAllJoined(); System.out.println(resultList.size()); - ShapeJoined s = resultList.get(0); - System.out.println(s.getClass()); - CircleJoined c = (CircleJoined) s; - System.out.println(c.getRadius()); - // TriangleJoined t = (TriangleJoined) resultList.get(1); - // System.out.println(t.getEqualSites()); + // here should come 2 times CircleJoined if you use only the built-in test data generation + for (ShapeJoined s : resultList) { + System.out.println(s.getClass()); + ShapeJoined entity = repo.find(s.getClass(), s.getIdString()); + System.out.println(entity); + } System.out.println("--------------\n"); } @@ -48,12 +52,10 @@ public void testSingletable(ActionEvent event) { List resultList = repo.findAllSingletable(); System.out.println(resultList.size()); - ShapeSingletable s = resultList.get(0); - System.out.println(s.getClass()); - CircleSingletable c = (CircleSingletable) s; - System.out.println(c.getRadius()); - // TriangleJoined t = (TriangleJoined) resultList.get(1); - // System.out.println(t.getEqualSites()); + for (ShapeSingletable s : resultList) { + System.out.println(s.getClass()); + System.out.println(repo.find(s.getClass(), s.getIdString())); + } System.out.println("--------------\n"); } @@ -62,12 +64,10 @@ public void testPerclass(ActionEvent event) { List resultList = repo.findAllPerclass(); System.out.println(resultList.size()); - ShapePerclass s = resultList.get(0); - System.out.println(s.getClass()); - CirclePerclass c = (CirclePerclass) s; - System.out.println(c.getRadius()); - // TriangleJoined t = (TriangleJoined) resultList.get(1); - // System.out.println(t.getEqualSites()); + for (ShapePerclass s : resultList) { + System.out.println(s.getClass()); + System.out.println(repo.find(s.getClass(), s.getIdString())); + } System.out.println("--------------\n"); } @@ -76,15 +76,29 @@ public void createEntities(ActionEvent event) { CircleJoined circleJoined = new CircleJoined(); circleJoined.setIdString("joinedTest"); circleJoined.setRadius(123); + TriangleJoined notReallyACircle = new TriangleJoined(); + notReallyACircle.setEqualSites(false); + notReallyACircle.setIdString("a triangle shaped circle?"); + CircleSingletable circleSingletable = new CircleSingletable(); circleSingletable.setIdString("singletableTest"); circleSingletable.setRadius(234); + TriangleSingletable nowATriangle = new TriangleSingletable(); + nowATriangle.setIdString("a triangle shaped triangle"); + nowATriangle.setEqualSites(true); + CirclePerclass circlePerclass = new CirclePerclass(); circlePerclass.setIdString("perclassTest"); circlePerclass.setRadius(456); + TrianglePerclass trianglePerclass = new TrianglePerclass(); + trianglePerclass.setEqualSites(false); + trianglePerclass.setIdString("a single triangle"); repo.save(circleJoined); + repo.save(notReallyACircle); repo.save(circlePerclass); + repo.save(trianglePerclass); repo.save(circleSingletable); + repo.save(nowATriangle); } } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/CircleJoined.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/CircleJoined.java index 3d06e12..9cab0ed 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/CircleJoined.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/CircleJoined.java @@ -3,7 +3,7 @@ import javax.persistence.Entity; @Entity -// @DiscriminatorValue(value = "CIRCLE") +// @DiscriminatorValue(value = "CircleJoined") // @Table(name = "CIRCLE_JOINED") public class CircleJoined extends ShapeJoined { @@ -20,4 +20,9 @@ public void setRadius(Integer radius) { this.radius = radius; } + @Override + public String toString() { + return super.toString() + " / radius: " + radius; + } + } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/ShapeJoined.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/ShapeJoined.java index 3a9ef00..68ca357 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/ShapeJoined.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/ShapeJoined.java @@ -2,6 +2,7 @@ import java.io.Serializable; +import javax.persistence.DiscriminatorColumn; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Inheritance; @@ -9,7 +10,7 @@ @Entity @Inheritance(strategy = InheritanceType.JOINED) -// @DiscriminatorColumn(name = "TYPE") +@DiscriminatorColumn(name = "TYPE") // @Table(name = "SHAPE_JOINED") public abstract class ShapeJoined implements Serializable { @@ -26,4 +27,8 @@ public void setIdString(String idString) { this.idString = idString; } + @Override + public String toString() { + return "idString: " + idString; + } } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java index 6e39a64..8f54cc4 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/joined/TriangleJoined.java @@ -1,9 +1,10 @@ package biz.hahamo.dev.enterprise.example.joined; +import javax.persistence.DiscriminatorValue; import javax.persistence.Entity; @Entity -// @DiscriminatorValue("TRIANGLE") +@DiscriminatorValue("CircleJoined") // @Table(name = "TRIANGLE_JOINED") public class TriangleJoined extends ShapeJoined { @@ -20,4 +21,8 @@ public void setEqualSites(Boolean equalSites) { this.equalSites = equalSites; } + @Override + public String toString() { + return super.toString() + " / equalSites: " + equalSites; + } } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java index e555fab..154dc53 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/CircleSingletable.java @@ -19,4 +19,8 @@ public void setRadius(Integer radius) { this.radius = radius; } + @Override + public String toString() { + return super.toString() + " / radius: " + radius; + } } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java index 1f2718a..54f19c7 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/ShapeSingletable.java @@ -2,6 +2,7 @@ import java.io.Serializable; +import javax.persistence.DiscriminatorColumn; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.Inheritance; @@ -9,7 +10,7 @@ @Entity @Inheritance(strategy = InheritanceType.SINGLE_TABLE) -// @DiscriminatorColumn(name = "TYPE") +@DiscriminatorColumn(name = "TYPE") // @Table(name = "SHAPE_SINGLETABLE") public abstract class ShapeSingletable implements Serializable { @@ -26,4 +27,8 @@ public void setIdString(String idString) { this.idString = idString; } + @Override + public String toString() { + return "idString: " + idString; + } } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java index c84264b..c4d6c89 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/singletable/TriangleSingletable.java @@ -3,7 +3,8 @@ import javax.persistence.Entity; @Entity -// @DiscriminatorValue("TRIANGLE") +// @DiscriminatorValue("CircleSingletable") // won't work out: Hibernate throws an exception at startup +// @Table(name = "TRIANGLE_SINGLE") public class TriangleSingletable extends ShapeSingletable { private static final long serialVersionUID = -1783113903772499963L; @@ -19,4 +20,8 @@ public void setEqualSites(Boolean equalSites) { this.equalSites = equalSites; } + @Override + public String toString() { + return super.toString() + " / equalSites: " + equalSites; + } } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java index 4dc08ca..b331703 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/CirclePerclass.java @@ -19,4 +19,9 @@ public void setRadius(Integer radius) { this.radius = radius; } + @Override + public String toString() { + return super.toString() + " / radius: " + radius; + } + } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java index 4407b21..dd5ec0d 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/ShapePerclass.java @@ -24,4 +24,9 @@ public void setIdString(String idString) { this.idString = idString; } + @Override + public String toString() { + return "idString: " + idString; + } + } diff --git a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java index 9be8602..835e966 100644 --- a/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java +++ b/example/src/main/java/biz/hahamo/dev/enterprise/example/tableperclass/TrianglePerclass.java @@ -19,4 +19,8 @@ public void setEqualSites(Boolean equalSites) { this.equalSites = equalSites; } + @Override + public String toString() { + return super.toString() + " / equalSites: " + equalSites; + } } diff --git a/example/src/main/webapp/WEB-INF/templates/footer.xhtml b/example/src/main/webapp/WEB-INF/templates/footer.xhtml index 865356f..10b2e8c 100644 --- a/example/src/main/webapp/WEB-INF/templates/footer.xhtml +++ b/example/src/main/webapp/WEB-INF/templates/footer.xhtml @@ -3,7 +3,7 @@ -Insert title here +GHajba's JPA 2.0 Table Inheritance Example
diff --git a/example/src/main/webapp/WEB-INF/templates/header.xhtml b/example/src/main/webapp/WEB-INF/templates/header.xhtml index 200e36e..a028562 100644 --- a/example/src/main/webapp/WEB-INF/templates/header.xhtml +++ b/example/src/main/webapp/WEB-INF/templates/header.xhtml @@ -2,6 +2,6 @@ -
My Facelet Application
+
Table inheritance example
diff --git a/example/src/main/webapp/index.html b/example/src/main/webapp/index.html index 3368e9c..d482d6f 100644 --- a/example/src/main/webapp/index.html +++ b/example/src/main/webapp/index.html @@ -4,7 +4,7 @@ Start Page - +

Hello World!