Split or move persistence-modules/java-jpa module (#7887)
This commit is contained in:
parent
0b834830b9
commit
c5e7773a51
@ -1,4 +1,8 @@
|
|||||||
# Relevant Articles
|
# Relevant Articles
|
||||||
|
|
||||||
- [JPA Query Parameters Usage](http://www.baeldung.com/jpa-query-parameters-usage)
|
- [JPA Query Parameters Usage](https://www.baeldung.com/jpa-query-parameters-usage)
|
||||||
- [Mapping Entitiy Class Names to SQL Table Names with JPA](https://www.baeldung.com/jpa-entity-table-names)
|
- [Mapping Entitiy Class Names to SQL Table Names with JPA](https://www.baeldung.com/jpa-entity-table-names)
|
||||||
|
- [Default Column Values in JPA](https://www.baeldung.com/jpa-default-column-values)
|
||||||
|
- [Types of JPA Queries](https://www.baeldung.com/jpa-queries)
|
||||||
|
- [JPA/Hibernate Projections](https://www.baeldung.com/jpa-hibernate-projections)
|
||||||
|
- [Combining JPA And/Or Criteria Predicates](https://www.baeldung.com/jpa-and-or-criteria-predicates)
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
package com.baeldung.jpa.criteria.repository;
|
package com.baeldung.jpa.criteria;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.baeldung.jpa.criteria.entity.Item;
|
public interface CustomItemRepository {
|
||||||
|
|
||||||
public interface CustomItemRepository {
|
List<Item> findItemsByColorAndGrade();
|
||||||
|
|
||||||
List<Item> findItemsByColorAndGrade();
|
List<Item> findItemByColorOrGrade();
|
||||||
|
}
|
||||||
List<Item> findItemByColorOrGrade();
|
|
||||||
}
|
|
@ -1,77 +1,72 @@
|
|||||||
package com.baeldung.jpa.criteria.repository.impl;
|
package com.baeldung.jpa.criteria;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.List;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import javax.persistence.EntityManager;
|
||||||
|
import javax.persistence.EntityManagerFactory;
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.Persistence;
|
||||||
import javax.persistence.EntityManagerFactory;
|
import javax.persistence.criteria.CriteriaBuilder;
|
||||||
import javax.persistence.Persistence;
|
import javax.persistence.criteria.CriteriaQuery;
|
||||||
import javax.persistence.criteria.CriteriaBuilder;
|
import javax.persistence.criteria.Predicate;
|
||||||
import javax.persistence.criteria.CriteriaQuery;
|
import javax.persistence.criteria.Root;
|
||||||
import javax.persistence.criteria.Predicate;
|
|
||||||
import javax.persistence.criteria.Root;
|
public class CustomItemRepositoryImpl implements CustomItemRepository {
|
||||||
|
|
||||||
import com.baeldung.jpa.criteria.entity.Item;
|
private EntityManager entityManager;
|
||||||
import com.baeldung.jpa.criteria.repository.CustomItemRepository;
|
|
||||||
|
public CustomItemRepositoryImpl() {
|
||||||
public class CustomItemRepositoryImpl implements CustomItemRepository {
|
super();
|
||||||
|
EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa-h2-criteria");
|
||||||
private EntityManager entityManager;
|
entityManager = factory.createEntityManager();
|
||||||
|
}
|
||||||
public CustomItemRepositoryImpl() {
|
|
||||||
super();
|
@Override
|
||||||
EntityManagerFactory factory = Persistence.createEntityManagerFactory("jpa-h2-criteria");
|
public List<Item> findItemsByColorAndGrade() {
|
||||||
entityManager = factory.createEntityManager();
|
|
||||||
}
|
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
|
||||||
|
CriteriaQuery<Item> criteriaQuery = criteriaBuilder.createQuery(Item.class);
|
||||||
@Override
|
Root<Item> itemRoot = criteriaQuery.from(Item.class);
|
||||||
public List<Item> findItemsByColorAndGrade() {
|
|
||||||
|
Predicate predicateForBlueColor = criteriaBuilder.equal(itemRoot.get("color"), "blue");
|
||||||
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
|
Predicate predicateForRedColor = criteriaBuilder.equal(itemRoot.get("color"), "red");
|
||||||
CriteriaQuery<Item> criteriaQuery = criteriaBuilder.createQuery(Item.class);
|
Predicate predicateForColor = criteriaBuilder.or(predicateForBlueColor, predicateForRedColor);
|
||||||
Root<Item> itemRoot = criteriaQuery.from(Item.class);
|
|
||||||
|
Predicate predicateForGradeA = criteriaBuilder.equal(itemRoot.get("grade"), "A");
|
||||||
Predicate predicateForBlueColor = criteriaBuilder.equal(itemRoot.get("color"), "blue");
|
Predicate predicateForGradeB = criteriaBuilder.equal(itemRoot.get("grade"), "B");
|
||||||
Predicate predicateForRedColor = criteriaBuilder.equal(itemRoot.get("color"), "red");
|
Predicate predicateForGrade = criteriaBuilder.or(predicateForGradeA, predicateForGradeB);
|
||||||
Predicate predicateForColor = criteriaBuilder.or(predicateForBlueColor, predicateForRedColor);
|
|
||||||
|
// final search filter
|
||||||
Predicate predicateForGradeA = criteriaBuilder.equal(itemRoot.get("grade"), "A");
|
Predicate finalPredicate = criteriaBuilder.and(predicateForColor, predicateForGrade);
|
||||||
Predicate predicateForGradeB = criteriaBuilder.equal(itemRoot.get("grade"), "B");
|
|
||||||
Predicate predicateForGrade = criteriaBuilder.or(predicateForGradeA, predicateForGradeB);
|
criteriaQuery.where(finalPredicate);
|
||||||
|
|
||||||
// final search filter
|
List<Item> items = entityManager.createQuery(criteriaQuery)
|
||||||
Predicate finalPredicate = criteriaBuilder.and(predicateForColor, predicateForGrade);
|
.getResultList();
|
||||||
|
return items;
|
||||||
criteriaQuery.where(finalPredicate);
|
}
|
||||||
|
|
||||||
List<Item> items = entityManager.createQuery(criteriaQuery)
|
@Override
|
||||||
.getResultList();
|
public List<Item> findItemByColorOrGrade() {
|
||||||
return items;
|
|
||||||
}
|
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
|
||||||
|
CriteriaQuery<Item> criteriaQuery = criteriaBuilder.createQuery(Item.class);
|
||||||
@Override
|
Root<Item> itemRoot = criteriaQuery.from(Item.class);
|
||||||
public List<Item> findItemByColorOrGrade() {
|
|
||||||
|
Predicate predicateForBlueColor = criteriaBuilder.equal(itemRoot.get("color"), "red");
|
||||||
CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
|
Predicate predicateForGradeA = criteriaBuilder.equal(itemRoot.get("grade"), "D");
|
||||||
CriteriaQuery<Item> criteriaQuery = criteriaBuilder.createQuery(Item.class);
|
Predicate predicateForBlueColorAndGradeA = criteriaBuilder.and(predicateForBlueColor, predicateForGradeA);
|
||||||
Root<Item> itemRoot = criteriaQuery.from(Item.class);
|
|
||||||
|
Predicate predicateForRedColor = criteriaBuilder.equal(itemRoot.get("color"), "blue");
|
||||||
Predicate predicateForBlueColor = criteriaBuilder.equal(itemRoot.get("color"), "red");
|
Predicate predicateForGradeB = criteriaBuilder.equal(itemRoot.get("grade"), "B");
|
||||||
Predicate predicateForGradeA = criteriaBuilder.equal(itemRoot.get("grade"), "D");
|
Predicate predicateForRedColorAndGradeB = criteriaBuilder.and(predicateForRedColor, predicateForGradeB);
|
||||||
Predicate predicateForBlueColorAndGradeA = criteriaBuilder.and(predicateForBlueColor, predicateForGradeA);
|
|
||||||
|
// final search filter
|
||||||
Predicate predicateForRedColor = criteriaBuilder.equal(itemRoot.get("color"), "blue");
|
Predicate finalPredicate = criteriaBuilder.or(predicateForBlueColorAndGradeA, predicateForRedColorAndGradeB);
|
||||||
Predicate predicateForGradeB = criteriaBuilder.equal(itemRoot.get("grade"), "B");
|
|
||||||
Predicate predicateForRedColorAndGradeB = criteriaBuilder.and(predicateForRedColor, predicateForGradeB);
|
criteriaQuery.where(finalPredicate);
|
||||||
|
|
||||||
// final search filter
|
List<Item> items = entityManager.createQuery(criteriaQuery)
|
||||||
Predicate finalPredicate = criteriaBuilder.or(predicateForBlueColorAndGradeA, predicateForRedColorAndGradeB);
|
.getResultList();
|
||||||
|
return items;
|
||||||
criteriaQuery.where(finalPredicate);
|
}
|
||||||
|
}
|
||||||
List<Item> items = entityManager.createQuery(criteriaQuery)
|
|
||||||
.getResultList();
|
|
||||||
return items;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,49 +1,49 @@
|
|||||||
package com.baeldung.jpa.criteria.entity;
|
package com.baeldung.jpa.criteria;
|
||||||
|
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
import javax.persistence.Table;
|
import javax.persistence.Table;
|
||||||
|
|
||||||
@Table(name = "item")
|
@Table(name = "item")
|
||||||
@Entity
|
@Entity
|
||||||
public class Item {
|
public class Item {
|
||||||
|
|
||||||
@Id
|
@Id
|
||||||
private Long id;
|
private Long id;
|
||||||
private String color;
|
private String color;
|
||||||
private String grade;
|
private String grade;
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
public String getColor() {
|
public String getColor() {
|
||||||
return color;
|
return color;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getGrade() {
|
public String getGrade() {
|
||||||
return grade;
|
return grade;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Long getId() {
|
public Long getId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setColor(String color) {
|
public void setColor(String color) {
|
||||||
this.color = color;
|
this.color = color;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setGrade(String grade) {
|
public void setGrade(String grade) {
|
||||||
this.grade = grade;
|
this.grade = grade;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setId(Long id) {
|
public void setId(Long id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setName(String name) {
|
public void setName(String name) {
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -32,4 +32,91 @@
|
|||||||
value="queryparams.sql" />
|
value="queryparams.sql" />
|
||||||
</properties>
|
</properties>
|
||||||
</persistence-unit>
|
</persistence-unit>
|
||||||
|
|
||||||
|
<persistence-unit name="entity-default-values">
|
||||||
|
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||||
|
<class>com.baeldung.jpa.defaultvalues.User</class>
|
||||||
|
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
||||||
|
<properties>
|
||||||
|
<property name="javax.persistence.jdbc.driver"
|
||||||
|
value="org.h2.Driver" />
|
||||||
|
<property name="javax.persistence.jdbc.url"
|
||||||
|
value="jdbc:h2:mem:test" />
|
||||||
|
<property name="javax.persistence.jdbc.user" value="sa" />
|
||||||
|
<property name="javax.persistence.jdbc.password" value="" />
|
||||||
|
<property name="hibernate.dialect"
|
||||||
|
value="org.hibernate.dialect.H2Dialect" />
|
||||||
|
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
|
||||||
|
<property name="show_sql" value="true" />
|
||||||
|
<property name="hibernate.temp.use_jdbc_metadata_defaults"
|
||||||
|
value="false" />
|
||||||
|
</properties>
|
||||||
|
</persistence-unit>
|
||||||
|
|
||||||
|
<persistence-unit name="jpa-query-types">
|
||||||
|
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||||
|
<class>com.baeldung.jpa.querytypes.UserEntity</class>
|
||||||
|
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
||||||
|
<properties>
|
||||||
|
<property name="javax.persistence.jdbc.driver"
|
||||||
|
value="org.h2.Driver" />
|
||||||
|
<property name="javax.persistence.jdbc.url"
|
||||||
|
value="jdbc:h2:mem:test" />
|
||||||
|
<property name="javax.persistence.jdbc.user" value="sa" />
|
||||||
|
<property name="javax.persistence.jdbc.password" value="" />
|
||||||
|
<property name="hibernate.dialect"
|
||||||
|
value="org.hibernate.dialect.H2Dialect" />
|
||||||
|
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
|
||||||
|
<property name="show_sql" value="true" />
|
||||||
|
<property name="hibernate.temp.use_jdbc_metadata_defaults"
|
||||||
|
value="false" />
|
||||||
|
<property name="javax.persistence.sql-load-script-source"
|
||||||
|
value="users.sql" />
|
||||||
|
</properties>
|
||||||
|
</persistence-unit>
|
||||||
|
|
||||||
|
<persistence-unit name="jpa-projections">
|
||||||
|
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||||
|
<class>com.baeldung.jpa.projections.Product</class>
|
||||||
|
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
||||||
|
<properties>
|
||||||
|
<property name="javax.persistence.jdbc.driver"
|
||||||
|
value="org.h2.Driver" />
|
||||||
|
<property name="javax.persistence.jdbc.url"
|
||||||
|
value="jdbc:h2:mem:test" />
|
||||||
|
<property name="javax.persistence.jdbc.user" value="sa" />
|
||||||
|
<property name="javax.persistence.jdbc.password" value="" />
|
||||||
|
<property name="hibernate.dialect"
|
||||||
|
value="org.hibernate.dialect.H2Dialect" />
|
||||||
|
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
|
||||||
|
<property name="show_sql" value="true" />
|
||||||
|
<property name="hibernate.temp.use_jdbc_metadata_defaults"
|
||||||
|
value="false" />
|
||||||
|
<property name="javax.persistence.sql-load-script-source"
|
||||||
|
value="products_jpa.sql" />
|
||||||
|
</properties>
|
||||||
|
</persistence-unit>
|
||||||
|
|
||||||
|
<persistence-unit name="jpa-h2-criteria">
|
||||||
|
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||||
|
<class>com.baeldung.jpa.criteria.Item</class>
|
||||||
|
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
||||||
|
<properties>
|
||||||
|
<property name="javax.persistence.jdbc.driver"
|
||||||
|
value="org.h2.Driver" />
|
||||||
|
<property name="javax.persistence.jdbc.url"
|
||||||
|
value="jdbc:h2:mem:test" />
|
||||||
|
<property name="javax.persistence.jdbc.user" value="sa" />
|
||||||
|
<property name="javax.persistence.jdbc.password" value="" />
|
||||||
|
<property name="hibernate.dialect"
|
||||||
|
value="org.hibernate.dialect.H2Dialect" />
|
||||||
|
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
|
||||||
|
<property name="show_sql" value="true" />
|
||||||
|
<property name="hibernate.temp.use_jdbc_metadata_defaults"
|
||||||
|
value="false" />
|
||||||
|
<property name="javax.persistence.sql-load-script-source"
|
||||||
|
value="item.sql" />
|
||||||
|
</properties>
|
||||||
|
</persistence-unit>
|
||||||
|
|
||||||
</persistence>
|
</persistence>
|
@ -1,4 +1,4 @@
|
|||||||
insert into item(id,grade,color) values (10,'C','blue');
|
insert into item(id,grade,color) values (10,'C','blue');
|
||||||
insert into item(id,grade,color) values (11,'C','red');
|
insert into item(id,grade,color) values (11,'C','red');
|
||||||
insert into item(id,grade,color) values (12,'A','blue');
|
insert into item(id,grade,color) values (12,'A','blue');
|
||||||
insert into item(id,grade,color) values (13,'D','red');
|
insert into item(id,grade,color) values (13,'D','red');
|
@ -1,44 +1,44 @@
|
|||||||
package com.baeldung.jpa.criteria.repository.impl;
|
package com.baeldung.jpa.criteria;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertFalse;
|
import static org.junit.Assert.assertFalse;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import com.baeldung.jpa.criteria.entity.Item;
|
import com.baeldung.jpa.criteria.Item;
|
||||||
import com.baeldung.jpa.criteria.repository.CustomItemRepository;
|
import com.baeldung.jpa.criteria.CustomItemRepository;
|
||||||
|
|
||||||
public class CustomItemRepositoryIntegrationTest {
|
public class CustomItemRepositoryIntegrationTest {
|
||||||
|
|
||||||
CustomItemRepository customItemRepository = new CustomItemRepositoryImpl();
|
CustomItemRepository customItemRepository = new CustomItemRepositoryImpl();
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenItems_whenFindItemsByColorAndGrade_thenReturnItems() {
|
public void givenItems_whenFindItemsByColorAndGrade_thenReturnItems() {
|
||||||
|
|
||||||
List<Item> items = customItemRepository.findItemsByColorAndGrade();
|
List<Item> items = customItemRepository.findItemsByColorAndGrade();
|
||||||
|
|
||||||
assertFalse("No items found", items.isEmpty());
|
assertFalse("No items found", items.isEmpty());
|
||||||
assertEquals("There should be only one item", 1, items.size());
|
assertEquals("There should be only one item", 1, items.size());
|
||||||
|
|
||||||
Item item = items.get(0);
|
Item item = items.get(0);
|
||||||
|
|
||||||
assertEquals("this item do not have blue color", "blue", item.getColor());
|
assertEquals("this item do not have blue color", "blue", item.getColor());
|
||||||
assertEquals("this item does not belong to A grade", "A", item.getGrade());
|
assertEquals("this item does not belong to A grade", "A", item.getGrade());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenItems_whenFindItemByColorOrGrade_thenReturnItems() {
|
public void givenItems_whenFindItemByColorOrGrade_thenReturnItems() {
|
||||||
|
|
||||||
List<Item> items = customItemRepository.findItemByColorOrGrade();
|
List<Item> items = customItemRepository.findItemByColorOrGrade();
|
||||||
|
|
||||||
assertFalse("No items found", items.isEmpty());
|
assertFalse("No items found", items.isEmpty());
|
||||||
assertEquals("There should be only one item", 1, items.size());
|
assertEquals("There should be only one item", 1, items.size());
|
||||||
|
|
||||||
Item item = items.get(0);
|
Item item = items.get(0);
|
||||||
|
|
||||||
assertEquals("this item do not have red color", "red", item.getColor());
|
assertEquals("this item do not have red color", "red", item.getColor());
|
||||||
assertEquals("this item does not belong to D grade", "D", item.getGrade());
|
assertEquals("this item does not belong to D grade", "D", item.getGrade());
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,16 +1,12 @@
|
|||||||
# Relevant Articles
|
# Relevant Articles
|
||||||
|
|
||||||
- [A Guide to SqlResultSetMapping](http://www.baeldung.com/jpa-sql-resultset-mapping)
|
- [A Guide to SqlResultSetMapping](https://www.baeldung.com/jpa-sql-resultset-mapping)
|
||||||
- [A Guide to Stored Procedures with JPA](http://www.baeldung.com/jpa-stored-procedures)
|
- [A Guide to Stored Procedures with JPA](https://www.baeldung.com/jpa-stored-procedures)
|
||||||
- [Fixing the JPA error “java.lang.String cannot be cast to Ljava.lang.String;”](https://www.baeldung.com/jpa-error-java-lang-string-cannot-be-cast)
|
- [Fixing the JPA error “java.lang.String cannot be cast to Ljava.lang.String;”](https://www.baeldung.com/jpa-error-java-lang-string-cannot-be-cast)
|
||||||
- [JPA Entity Graph](https://www.baeldung.com/jpa-entity-graph)
|
- [JPA Entity Graph](https://www.baeldung.com/jpa-entity-graph)
|
||||||
- [JPA 2.2 Support for Java 8 Date/Time Types](https://www.baeldung.com/jpa-java-time)
|
- [JPA 2.2 Support for Java 8 Date/Time Types](https://www.baeldung.com/jpa-java-time)
|
||||||
- [Converting Between LocalDate and SQL Date](https://www.baeldung.com/java-convert-localdate-sql-date)
|
- [Converting Between LocalDate and SQL Date](https://www.baeldung.com/java-convert-localdate-sql-date)
|
||||||
- [Combining JPA And/Or Criteria Predicates](https://www.baeldung.com/jpa-and-or-criteria-predicates)
|
|
||||||
- [Types of JPA Queries](https://www.baeldung.com/jpa-queries)
|
|
||||||
- [JPA/Hibernate Projections](https://www.baeldung.com/jpa-hibernate-projections)
|
|
||||||
- [Composite Primary Keys in JPA](https://www.baeldung.com/jpa-composite-primary-keys)
|
- [Composite Primary Keys in JPA](https://www.baeldung.com/jpa-composite-primary-keys)
|
||||||
- [Defining JPA Entities](https://www.baeldung.com/jpa-entities)
|
- [Defining JPA Entities](https://www.baeldung.com/jpa-entities)
|
||||||
- [JPA @Basic Annotation](https://www.baeldung.com/jpa-basic-annotation)
|
- [JPA @Basic Annotation](https://www.baeldung.com/jpa-basic-annotation)
|
||||||
- [Default Column Values in JPA](https://www.baeldung.com/jpa-default-column-values)
|
|
||||||
- [Persisting Enums in JPA](https://www.baeldung.com/jpa-persisting-enums-in-jpa)
|
- [Persisting Enums in JPA](https://www.baeldung.com/jpa-persisting-enums-in-jpa)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.util;
|
package com.baeldung.jpa.convertdates;
|
||||||
|
|
||||||
import javax.persistence.AttributeConverter;
|
import javax.persistence.AttributeConverter;
|
||||||
import javax.persistence.Converter;
|
import javax.persistence.Converter;
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.util;
|
package com.baeldung.jpa.entity;
|
||||||
|
|
||||||
public enum Gender {
|
public enum Gender {
|
||||||
MALE,
|
MALE,
|
@ -14,8 +14,6 @@ import javax.persistence.Temporal;
|
|||||||
import javax.persistence.TemporalType;
|
import javax.persistence.TemporalType;
|
||||||
import javax.persistence.Transient;
|
import javax.persistence.Transient;
|
||||||
|
|
||||||
import com.baeldung.util.Gender;
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name="STUDENT")
|
@Table(name="STUDENT")
|
||||||
public class Student {
|
public class Student {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.jpa.entity;
|
package com.baeldung.jpa.primarykeys;
|
||||||
|
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.jpa.entity;
|
package com.baeldung.jpa.primarykeys;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.jpa.entity;
|
package com.baeldung.jpa.primarykeys;
|
||||||
|
|
||||||
import javax.persistence.EmbeddedId;
|
import javax.persistence.EmbeddedId;
|
||||||
import javax.persistence.Entity;
|
import javax.persistence.Entity;
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.jpa.entity;
|
package com.baeldung.jpa.primarykeys;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.sqlresultsetmapping;
|
package com.baeldung.jpa.sqlresultsetmapping;
|
||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
|
|
||||||
@ -7,7 +7,7 @@ import javax.persistence.*;
|
|||||||
name="EmployeeResult",
|
name="EmployeeResult",
|
||||||
entities={
|
entities={
|
||||||
@EntityResult(
|
@EntityResult(
|
||||||
entityClass = com.baeldung.sqlresultsetmapping.Employee.class,
|
entityClass = com.baeldung.jpa.sqlresultsetmapping.Employee.class,
|
||||||
fields={@FieldResult(name="id",column="employeeNumber"),
|
fields={@FieldResult(name="id",column="employeeNumber"),
|
||||||
@FieldResult(name="name", column="name")}
|
@FieldResult(name="name", column="name")}
|
||||||
)
|
)
|
@ -1,18 +1,18 @@
|
|||||||
package com.baeldung.sqlresultsetmapping;
|
package com.baeldung.jpa.sqlresultsetmapping;
|
||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
|
|
||||||
@SqlResultSetMappings(value = {
|
@SqlResultSetMappings(value = {
|
||||||
@SqlResultSetMapping(name = "ScheduleResult",
|
@SqlResultSetMapping(name = "ScheduleResult",
|
||||||
classes = { @ConstructorResult(targetClass = com.baeldung.sqlresultsetmapping.ScheduledDay.class,
|
classes = { @ConstructorResult(targetClass = com.baeldung.jpa.sqlresultsetmapping.ScheduledDay.class,
|
||||||
columns = { @ColumnResult(name = "id", type = Long.class),
|
columns = { @ColumnResult(name = "id", type = Long.class),
|
||||||
@ColumnResult(name = "employeeId", type = Long.class),
|
@ColumnResult(name = "employeeId", type = Long.class),
|
||||||
@ColumnResult(name = "dayOfWeek") }) }),
|
@ColumnResult(name = "dayOfWeek") }) }),
|
||||||
@SqlResultSetMapping(name = "FridayEmployeeResult",
|
@SqlResultSetMapping(name = "FridayEmployeeResult",
|
||||||
columns = { @ColumnResult(name = "employeeId") }),
|
columns = { @ColumnResult(name = "employeeId") }),
|
||||||
@SqlResultSetMapping(name = "EmployeeScheduleResults",
|
@SqlResultSetMapping(name = "EmployeeScheduleResults",
|
||||||
entities = { @EntityResult(entityClass = com.baeldung.sqlresultsetmapping.Employee.class),
|
entities = { @EntityResult(entityClass = com.baeldung.jpa.sqlresultsetmapping.Employee.class),
|
||||||
@EntityResult(entityClass = com.baeldung.sqlresultsetmapping.ScheduledDay.class)
|
@EntityResult(entityClass = com.baeldung.jpa.sqlresultsetmapping.ScheduledDay.class)
|
||||||
}) })
|
}) })
|
||||||
@NamedNativeQuery(name = "FridayEmployees",
|
@NamedNativeQuery(name = "FridayEmployees",
|
||||||
query = "SELECT employeeId FROM schedule_days WHERE dayOfWeek = 'FRIDAY'",
|
query = "SELECT employeeId FROM schedule_days WHERE dayOfWeek = 'FRIDAY'",
|
@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
<persistence-unit name="java-jpa-scheduled-day">
|
<persistence-unit name="java-jpa-scheduled-day">
|
||||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||||
<class>com.baeldung.sqlresultsetmapping.ScheduledDay</class>
|
<class>com.baeldung.jpa.sqlresultsetmapping.ScheduledDay</class>
|
||||||
<class>com.baeldung.sqlresultsetmapping.Employee</class>
|
<class>com.baeldung.jpa.sqlresultsetmapping.Employee</class>
|
||||||
<class>com.baeldung.jpa.basicannotation.Course</class>
|
<class>com.baeldung.jpa.basicannotation.Course</class>
|
||||||
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
||||||
<properties>
|
<properties>
|
||||||
@ -115,77 +115,13 @@
|
|||||||
</properties>
|
</properties>
|
||||||
</persistence-unit>
|
</persistence-unit>
|
||||||
|
|
||||||
<persistence-unit name="jpa-h2-criteria">
|
|
||||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
|
||||||
<class>com.baeldung.jpa.criteria.entity.Item</class>
|
|
||||||
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
|
||||||
<properties>
|
|
||||||
<property name="javax.persistence.jdbc.driver"
|
|
||||||
value="org.h2.Driver" />
|
|
||||||
<property name="javax.persistence.jdbc.url"
|
|
||||||
value="jdbc:h2:mem:test" />
|
|
||||||
<property name="javax.persistence.jdbc.user" value="sa" />
|
|
||||||
<property name="javax.persistence.jdbc.password" value="" />
|
|
||||||
<property name="hibernate.dialect"
|
|
||||||
value="org.hibernate.dialect.H2Dialect" />
|
|
||||||
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
|
|
||||||
<property name="show_sql" value="true" />
|
|
||||||
<property name="hibernate.temp.use_jdbc_metadata_defaults"
|
|
||||||
value="false" />
|
|
||||||
<property name="javax.persistence.sql-load-script-source"
|
|
||||||
value="item.sql" />
|
|
||||||
</properties>
|
|
||||||
</persistence-unit>
|
|
||||||
|
|
||||||
<persistence-unit name="jpa-query-types">
|
|
||||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
|
||||||
<class>com.baeldung.jpa.querytypes.UserEntity</class>
|
|
||||||
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
|
||||||
<properties>
|
|
||||||
<property name="javax.persistence.jdbc.driver"
|
|
||||||
value="org.h2.Driver" />
|
|
||||||
<property name="javax.persistence.jdbc.url"
|
|
||||||
value="jdbc:h2:mem:test" />
|
|
||||||
<property name="javax.persistence.jdbc.user" value="sa" />
|
|
||||||
<property name="javax.persistence.jdbc.password" value="" />
|
|
||||||
<property name="hibernate.dialect"
|
|
||||||
value="org.hibernate.dialect.H2Dialect" />
|
|
||||||
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
|
|
||||||
<property name="show_sql" value="true" />
|
|
||||||
<property name="hibernate.temp.use_jdbc_metadata_defaults"
|
|
||||||
value="false" />
|
|
||||||
<property name="javax.persistence.sql-load-script-source"
|
|
||||||
value="users.sql" />
|
|
||||||
</properties>
|
|
||||||
</persistence-unit>
|
|
||||||
|
|
||||||
<persistence-unit name="entity-default-values">
|
|
||||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
|
||||||
<class>com.baeldung.jpa.defaultvalues.User</class>
|
|
||||||
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
|
||||||
<properties>
|
|
||||||
<property name="javax.persistence.jdbc.driver"
|
|
||||||
value="org.h2.Driver" />
|
|
||||||
<property name="javax.persistence.jdbc.url"
|
|
||||||
value="jdbc:h2:mem:test" />
|
|
||||||
<property name="javax.persistence.jdbc.user" value="sa" />
|
|
||||||
<property name="javax.persistence.jdbc.password" value="" />
|
|
||||||
<property name="hibernate.dialect"
|
|
||||||
value="org.hibernate.dialect.H2Dialect" />
|
|
||||||
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
|
|
||||||
<property name="show_sql" value="true" />
|
|
||||||
<property name="hibernate.temp.use_jdbc_metadata_defaults"
|
|
||||||
value="false" />
|
|
||||||
</properties>
|
|
||||||
</persistence-unit>
|
|
||||||
|
|
||||||
<persistence-unit name="jpa-entity-definition">
|
<persistence-unit name="jpa-entity-definition">
|
||||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
||||||
<class>com.baeldung.jpa.entity.Student</class>
|
<class>com.baeldung.jpa.entity.Student</class>
|
||||||
<class>com.baeldung.jpa.entity.Book</class>
|
<class>com.baeldung.jpa.primarykeys.Book</class>
|
||||||
<class>com.baeldung.jpa.entity.BookId</class>
|
<class>com.baeldung.jpa.primarykeys.BookId</class>
|
||||||
<class>com.baeldung.jpa.entity.Account</class>
|
<class>com.baeldung.jpa.primarykeys.Account</class>
|
||||||
<class>com.baeldung.jpa.entity.AccountId</class>
|
<class>com.baeldung.jpa.primarykeys.AccountId</class>
|
||||||
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
||||||
<properties>
|
<properties>
|
||||||
<property name="javax.persistence.jdbc.driver"
|
<property name="javax.persistence.jdbc.driver"
|
||||||
@ -203,25 +139,4 @@
|
|||||||
</properties>
|
</properties>
|
||||||
</persistence-unit>
|
</persistence-unit>
|
||||||
|
|
||||||
<persistence-unit name="jpa-projections">
|
|
||||||
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
|
|
||||||
<class>com.baeldung.jpa.projections.Product</class>
|
|
||||||
<exclude-unlisted-classes>true</exclude-unlisted-classes>
|
|
||||||
<properties>
|
|
||||||
<property name="javax.persistence.jdbc.driver"
|
|
||||||
value="org.h2.Driver" />
|
|
||||||
<property name="javax.persistence.jdbc.url"
|
|
||||||
value="jdbc:h2:mem:test" />
|
|
||||||
<property name="javax.persistence.jdbc.user" value="sa" />
|
|
||||||
<property name="javax.persistence.jdbc.password" value="" />
|
|
||||||
<property name="hibernate.dialect"
|
|
||||||
value="org.hibernate.dialect.H2Dialect" />
|
|
||||||
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
|
|
||||||
<property name="show_sql" value="true" />
|
|
||||||
<property name="hibernate.temp.use_jdbc_metadata_defaults"
|
|
||||||
value="false" />
|
|
||||||
<property name="javax.persistence.sql-load-script-source"
|
|
||||||
value="products_jpa.sql" />
|
|
||||||
</properties>
|
|
||||||
</persistence-unit>
|
|
||||||
</persistence>
|
</persistence>
|
@ -16,8 +16,6 @@ import org.junit.After;
|
|||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import com.baeldung.util.Gender;
|
|
||||||
|
|
||||||
public class StudentEntityIntegrationTest {
|
public class StudentEntityIntegrationTest {
|
||||||
|
|
||||||
private EntityManagerFactory emf;
|
private EntityManagerFactory emf;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.jpa.entity;
|
package com.baeldung.jpa.primarykeys;
|
||||||
|
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
@ -7,6 +7,10 @@ import javax.persistence.EntityManager;
|
|||||||
import javax.persistence.EntityManagerFactory;
|
import javax.persistence.EntityManagerFactory;
|
||||||
import javax.persistence.Persistence;
|
import javax.persistence.Persistence;
|
||||||
|
|
||||||
|
import com.baeldung.jpa.primarykeys.Account;
|
||||||
|
import com.baeldung.jpa.primarykeys.AccountId;
|
||||||
|
import com.baeldung.jpa.primarykeys.Book;
|
||||||
|
import com.baeldung.jpa.primarykeys.BookId;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
import org.junit.BeforeClass;
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.sqlresultsetmapping;
|
package com.baeldung.jpa.sqlresultsetmapping;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user