From 8aa7dc5aab0912aacb85fe24add7ff3863b1dc78 Mon Sep 17 00:00:00 2001 From: dupirefr Date: Thu, 30 Aug 2018 22:21:24 +0200 Subject: [PATCH] [BAEL-2048] Spring Data JPA adding a method to all repositories --- .../baeldung/config/StudentJPAH2Config.java | 0 .../persistence/dao/ExtendedRepository.java | 0 .../dao/ExtendedRepositoryImpl.java | 0 .../dao/ExtendedStudentRepository.java | 0 .../inmemory/persistence/model/KVTag.java | 34 +++++++++ .../inmemory/persistence/model/SkillTag.java | 30 ++++++++ .../inmemory/persistence/model/Student.java | 74 +++++++++++++++++++ .../persistence-student-h2.properties | 12 +++ ...endedStudentRepositoryIntegrationTest.java | 0 9 files changed, 150 insertions(+) rename {persistence-modules/spring-jpa => spring-data-jpa}/src/main/java/org/baeldung/config/StudentJPAH2Config.java (100%) rename {persistence-modules/spring-jpa => spring-data-jpa}/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepository.java (100%) rename {persistence-modules/spring-jpa => spring-data-jpa}/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepositoryImpl.java (100%) rename {persistence-modules/spring-jpa => spring-data-jpa}/src/main/java/org/baeldung/extended/persistence/dao/ExtendedStudentRepository.java (100%) create mode 100644 spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/KVTag.java create mode 100644 spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/SkillTag.java create mode 100644 spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/Student.java create mode 100644 spring-data-jpa/src/main/resources/persistence-student-h2.properties rename {persistence-modules/spring-jpa => spring-data-jpa}/src/test/java/org/baeldung/persistence/repository/ExtendedStudentRepositoryIntegrationTest.java (100%) diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/StudentJPAH2Config.java b/spring-data-jpa/src/main/java/org/baeldung/config/StudentJPAH2Config.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/config/StudentJPAH2Config.java rename to spring-data-jpa/src/main/java/org/baeldung/config/StudentJPAH2Config.java diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepository.java b/spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepository.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepository.java rename to spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepository.java diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepositoryImpl.java b/spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepositoryImpl.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepositoryImpl.java rename to spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedRepositoryImpl.java diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedStudentRepository.java b/spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedStudentRepository.java similarity index 100% rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedStudentRepository.java rename to spring-data-jpa/src/main/java/org/baeldung/extended/persistence/dao/ExtendedStudentRepository.java diff --git a/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/KVTag.java b/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/KVTag.java new file mode 100644 index 0000000000..1522744116 --- /dev/null +++ b/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/KVTag.java @@ -0,0 +1,34 @@ +package org.baeldung.inmemory.persistence.model; + +import javax.persistence.Embeddable; + +@Embeddable +public class KVTag { + private String key; + private String value; + + public KVTag() { + } + + public KVTag(String key, String value) { + super(); + this.key = key; + this.value = value; + } + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/SkillTag.java b/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/SkillTag.java new file mode 100644 index 0000000000..490ee0a18e --- /dev/null +++ b/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/SkillTag.java @@ -0,0 +1,30 @@ +package org.baeldung.inmemory.persistence.model; + +import javax.persistence.Embeddable; + +@Embeddable +public class SkillTag { + private String name; + private int value; + + public SkillTag() { + } + + public SkillTag(String name, int value) { + super(); + this.name = name; + this.value = value; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public String getName() { + return name; + } +} diff --git a/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/Student.java b/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/Student.java new file mode 100644 index 0000000000..26772e5ca5 --- /dev/null +++ b/spring-data-jpa/src/main/java/org/baeldung/inmemory/persistence/model/Student.java @@ -0,0 +1,74 @@ +package org.baeldung.inmemory.persistence.model; + +import javax.persistence.ElementCollection; +import javax.persistence.Entity; +import javax.persistence.Id; +import java.util.ArrayList; +import java.util.List; + +@Entity +public class Student { + + @Id + private long id; + private String name; + + @ElementCollection + private List tags = new ArrayList<>(); + + @ElementCollection + private List skillTags = new ArrayList<>(); + + @ElementCollection + private List kvTags = new ArrayList<>(); + + public Student() { + } + + public Student(long id, String name) { + super(); + this.id = id; + this.name = name; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags.addAll(tags); + } + + public List getSkillTags() { + return skillTags; + } + + public void setSkillTags(List skillTags) { + this.skillTags.addAll(skillTags); + } + + public List getKVTags() { + return this.kvTags; + } + + public void setKVTags(List kvTags) { + this.kvTags.addAll(kvTags); + } + +} diff --git a/spring-data-jpa/src/main/resources/persistence-student-h2.properties b/spring-data-jpa/src/main/resources/persistence-student-h2.properties new file mode 100644 index 0000000000..405e6ff109 --- /dev/null +++ b/spring-data-jpa/src/main/resources/persistence-student-h2.properties @@ -0,0 +1,12 @@ +# jdbc.X +jdbc.driverClassName=org.h2.Driver +jdbc.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1 +jdbc.user=sa +jdbc.pass= + +# hibernate.X +hibernate.dialect=org.hibernate.dialect.H2Dialect +hibernate.show_sql=true +hibernate.hbm2ddl.auto=create-drop +hibernate.cache.use_second_level_cache=false +hibernate.cache.use_query_cache=false \ No newline at end of file diff --git a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/repository/ExtendedStudentRepositoryIntegrationTest.java b/spring-data-jpa/src/test/java/org/baeldung/persistence/repository/ExtendedStudentRepositoryIntegrationTest.java similarity index 100% rename from persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/repository/ExtendedStudentRepositoryIntegrationTest.java rename to spring-data-jpa/src/test/java/org/baeldung/persistence/repository/ExtendedStudentRepositoryIntegrationTest.java