diff --git a/persistence-modules/spring-hibernate-5/README.md b/persistence-modules/spring-hibernate-5/README.md index adfb152afd..7a18761a7b 100644 --- a/persistence-modules/spring-hibernate-5/README.md +++ b/persistence-modules/spring-hibernate-5/README.md @@ -5,3 +5,6 @@ - [JPA Criteria Queries](http://www.baeldung.com/hibernate-criteria-queries) - [Introduction to Hibernate Search](http://www.baeldung.com/hibernate-search) - [@DynamicUpdate with Spring Data JPA](https://www.baeldung.com/spring-data-jpa-dynamicupdate) +- [Hibernate Second-Level Cache](http://www.baeldung.com/hibernate-second-level-cache) +- [Deleting Objects with Hibernate](http://www.baeldung.com/delete-with-hibernate) +- [Spring, Hibernate and a JNDI Datasource](http://www.baeldung.com/spring-persistence-jpa-jndi-datasource) \ No newline at end of file diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.fdt b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.fdt new file mode 100644 index 0000000000..c44ea80ed4 Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.fdt differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.fdx b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.fdx new file mode 100644 index 0000000000..77b3c43c21 Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.fdx differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.fnm b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.fnm new file mode 100644 index 0000000000..6a5f78d0a0 Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.fnm differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.nvd b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.nvd new file mode 100644 index 0000000000..7644ffa79b Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.nvd differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.nvm b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.nvm new file mode 100644 index 0000000000..b2eb2c7a52 Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.nvm differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.si b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.si new file mode 100644 index 0000000000..67b02ea9fd Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.si differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.tvd b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.tvd new file mode 100644 index 0000000000..b43b83f86a Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.tvd differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.tvx b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.tvx new file mode 100644 index 0000000000..6b97c002b3 Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6.tvx differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.doc b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.doc new file mode 100644 index 0000000000..f86ebad3d1 Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.doc differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.pos b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.pos new file mode 100644 index 0000000000..6299098895 Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.pos differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.tim b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.tim new file mode 100644 index 0000000000..3f8b1e4ab0 Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.tim differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.tip b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.tip new file mode 100644 index 0000000000..996b9bae87 Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_6_Lucene50_0.tip differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_7.cfe b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_7.cfe new file mode 100644 index 0000000000..d1359e482e Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_7.cfe differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_7.cfs b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_7.cfs new file mode 100644 index 0000000000..476949c900 Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_7.cfs differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_7.si b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_7.si new file mode 100644 index 0000000000..f85f471dbd Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/_7.si differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/segments_9 b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/segments_9 new file mode 100644 index 0000000000..555f95a4ee Binary files /dev/null and b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/segments_9 differ diff --git a/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/write.lock b/persistence-modules/spring-hibernate-5/com.baeldung.hibernatesearch.model.Product/write.lock new file mode 100644 index 0000000000..e69de29bb2 diff --git a/persistence-modules/spring-hibernate-5/pom.xml b/persistence-modules/spring-hibernate-5/pom.xml index e27775c76f..694ab570a5 100644 --- a/persistence-modules/spring-hibernate-5/pom.xml +++ b/persistence-modules/spring-hibernate-5/pom.xml @@ -51,6 +51,11 @@ hibernate-core ${hibernate.version} + + org.hibernate + hibernate-ehcache + ${hibernate.version} + javax.transaction jta diff --git a/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/dao/AbstractJpaDAO.java b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/dao/AbstractJpaDAO.java new file mode 100644 index 0000000000..0d002b8fbb --- /dev/null +++ b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/dao/AbstractJpaDAO.java @@ -0,0 +1,46 @@ +package com.baeldung.hibernate.cache.dao; + +import java.io.Serializable; +import java.util.List; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; + +public abstract class AbstractJpaDAO { + + private Class clazz; + + @PersistenceContext + private EntityManager entityManager; + + public final void setClazz(final Class clazzToSet) { + this.clazz = clazzToSet; + } + + public T findOne(final long id) { + return entityManager.find(clazz, id); + } + + @SuppressWarnings("unchecked") + public List findAll() { + return entityManager.createQuery("from " + clazz.getName()).getResultList(); + } + + public void create(final T entity) { + entityManager.persist(entity); + } + + public T update(final T entity) { + return entityManager.merge(entity); + } + + public void delete(final T entity) { + entityManager.remove(entity); + } + + public void deleteById(final long entityId) { + final T entity = findOne(entityId); + delete(entity); + } + +} \ No newline at end of file diff --git a/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/dao/FooDao.java b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/dao/FooDao.java new file mode 100644 index 0000000000..68c94fc0e3 --- /dev/null +++ b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/dao/FooDao.java @@ -0,0 +1,17 @@ +package com.baeldung.hibernate.cache.dao; + +import com.baeldung.hibernate.cache.model.Foo; +import org.springframework.stereotype.Repository; + +@Repository +public class FooDao extends AbstractJpaDAO implements IFooDao { + + public FooDao() { + super(); + + setClazz(Foo.class); + } + + // API + +} diff --git a/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/dao/IFooDao.java b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/dao/IFooDao.java new file mode 100644 index 0000000000..0a6d4bdbd6 --- /dev/null +++ b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/dao/IFooDao.java @@ -0,0 +1,21 @@ +package com.baeldung.hibernate.cache.dao; + +import java.util.List; + +import com.baeldung.hibernate.cache.model.Foo; + +public interface IFooDao { + + Foo findOne(long id); + + List findAll(); + + void create(Foo entity); + + Foo update(Foo entity); + + void delete(Foo entity); + + void deleteById(long entityId); + +} diff --git a/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/model/Bar.java b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/model/Bar.java new file mode 100644 index 0000000000..cd8f3a57cc --- /dev/null +++ b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/model/Bar.java @@ -0,0 +1,102 @@ +package com.baeldung.hibernate.cache.model; + +import java.io.Serializable; +import java.util.List; + +import javax.persistence.CascadeType; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.OneToMany; +import javax.persistence.OrderBy; + +@Entity +public class Bar implements Serializable { + private static final long serialVersionUID = 1L; + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private long id; + + @Column(nullable = false) + private String name; + + @OneToMany(mappedBy = "bar", fetch = FetchType.EAGER, cascade = CascadeType.ALL) + @OrderBy("name ASC") + List fooList; + + public Bar() { + super(); + } + + public Bar(final String name) { + super(); + + this.name = name; + } + + // API + + public long getId() { + return id; + } + + public void setId(final long id) { + + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + + public List getFooList() { + return fooList; + } + + public void setFooList(final List fooList) { + this.fooList = fooList; + } + + // + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final Bar other = (Bar) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Bar [name=").append(name).append("]"); + return builder.toString(); + } + +} diff --git a/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/model/Foo.java b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/model/Foo.java new file mode 100644 index 0000000000..902d76e2cc --- /dev/null +++ b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/model/Foo.java @@ -0,0 +1,92 @@ +package com.baeldung.hibernate.cache.model; + +import org.hibernate.annotations.CacheConcurrencyStrategy; + +import javax.persistence.*; +import java.io.Serializable; + +@Entity +@Cacheable +@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +public class Foo implements Serializable { + + private static final long serialVersionUID = 1L; + + public Foo() { + super(); + } + + public Foo(final String name) { + super(); + + this.name = name; + } + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "ID") + private Long id; + @Column(name = "NAME") + private String name; + + @ManyToOne(targetEntity = Bar.class, fetch = FetchType.EAGER) + @JoinColumn(name = "BAR_ID") + private Bar bar; + + public Bar getBar() { + return bar; + } + + public void setBar(final Bar bar) { + this.bar = bar; + } + + public Long getId() { + return id; + } + + public void setId(final Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(final String name) { + this.name = name; + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((name == null) ? 0 : name.hashCode()); + return result; + } + + @Override + public boolean equals(final Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + final Foo other = (Foo) obj; + if (name == null) { + if (other.name != null) + return false; + } else if (!name.equals(other.name)) + return false; + return true; + } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Foo [name=").append(name).append("]"); + return builder.toString(); + } + +} diff --git a/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/service/FooService.java b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/service/FooService.java new file mode 100644 index 0000000000..222968f98f --- /dev/null +++ b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/hibernate/cache/service/FooService.java @@ -0,0 +1,37 @@ +package com.baeldung.hibernate.cache.service; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.baeldung.hibernate.cache.dao.IFooDao; +import com.baeldung.hibernate.cache.model.Foo; + +@Service +@Transactional +public class FooService { + + @Autowired + private IFooDao dao; + + public FooService() { + super(); + } + + // API + + public void create(final Foo entity) { + dao.create(entity); + } + + public Foo findOne(final long id) { + return dao.findOne(id); + } + + public List findAll() { + return dao.findAll(); + } + +} diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJNDIConfig.java b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/spring/PersistenceJNDIConfig.java similarity index 92% rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJNDIConfig.java rename to persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/spring/PersistenceJNDIConfig.java index 56ba68dcbb..5f12dc4f5e 100644 --- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJNDIConfig.java +++ b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/spring/PersistenceJNDIConfig.java @@ -1,4 +1,4 @@ -package org.baeldung.config; +package com.baeldung.spring; import java.util.Properties; @@ -24,8 +24,8 @@ import org.springframework.transaction.annotation.EnableTransactionManagement; @Configuration @EnableTransactionManagement @PropertySource("classpath:persistence-jndi.properties") -@ComponentScan("org.baeldung.persistence") -@EnableJpaRepositories(basePackages = "org.baeldung.persistence.dao") +@ComponentScan("com.baeldung.hibernate.cache") +@EnableJpaRepositories(basePackages = "com.baeldung.hibernate.cache.dao") public class PersistenceJNDIConfig { @Autowired @@ -35,7 +35,7 @@ public class PersistenceJNDIConfig { public LocalContainerEntityManagerFactoryBean entityManagerFactory() throws NamingException { final LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(dataSource()); - em.setPackagesToScan("org.baeldung.persistence.model"); + em.setPackagesToScan("com.baeldung.hibernate.cache.model"); em.setJpaVendorAdapter(new HibernateJpaVendorAdapter()); em.setJpaProperties(additionalProperties()); return em; diff --git a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfigL2Cache.java b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/spring/PersistenceJPAConfigL2Cache.java similarity index 93% rename from persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfigL2Cache.java rename to persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/spring/PersistenceJPAConfigL2Cache.java index a236cf2331..93bcb30c5f 100644 --- a/persistence-modules/spring-jpa/src/main/java/org/baeldung/config/PersistenceJPAConfigL2Cache.java +++ b/persistence-modules/spring-hibernate-5/src/main/java/com/baeldung/spring/PersistenceJPAConfigL2Cache.java @@ -1,4 +1,4 @@ -package org.baeldung.config; +package com.baeldung.spring; import com.google.common.base.Preconditions; import org.springframework.beans.factory.annotation.Autowired; @@ -23,8 +23,8 @@ import java.util.Properties; @Configuration @EnableTransactionManagement @PropertySource({ "classpath:persistence-h2.properties" }) -@ComponentScan({ "org.baeldung.persistence" }) -@EnableJpaRepositories(basePackages = { "org.baeldung.persistence.dao", "org.baeldung.persistence.repository" }) +@ComponentScan({ "com.baeldung.hibernate.cache" }) +@EnableJpaRepositories(basePackages = { "com.baeldung.hibernate.cache.dao"}) public class PersistenceJPAConfigL2Cache { @Autowired @@ -50,7 +50,7 @@ public class PersistenceJPAConfigL2Cache { } protected String[] getPackagesToScan() { - return new String[] { "org.baeldung.persistence.model" }; + return new String[] { "com.baeldung.hibernate.cache.model" }; } @Bean diff --git a/persistence-modules/spring-hibernate-5/src/main/resources/persistence-h2.properties b/persistence-modules/spring-hibernate-5/src/main/resources/persistence-h2.properties index 5a137e2310..e3544d354a 100644 --- a/persistence-modules/spring-hibernate-5/src/main/resources/persistence-h2.properties +++ b/persistence-modules/spring-hibernate-5/src/main/resources/persistence-h2.properties @@ -9,6 +9,9 @@ jdbc.pass= hibernate.dialect=org.hibernate.dialect.H2Dialect hibernate.show_sql=false hibernate.hbm2ddl.auto=create-drop +hibernate.cache.use_second_level_cache=true +hibernate.cache.use_query_cache=true +hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory # hibernate.search.X hibernate.search.default.directory_provider = filesystem diff --git a/persistence-modules/spring-jpa/src/main/resources/persistence-jndi.properties b/persistence-modules/spring-hibernate-5/src/main/resources/persistence-jndi.properties similarity index 100% rename from persistence-modules/spring-jpa/src/main/resources/persistence-jndi.properties rename to persistence-modules/spring-hibernate-5/src/main/resources/persistence-jndi.properties diff --git a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/config/PersistenceJPAConfigDeletion.java b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/config/PersistenceJPAConfigDeletion.java similarity index 50% rename from persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/config/PersistenceJPAConfigDeletion.java rename to persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/config/PersistenceJPAConfigDeletion.java index e5fb728a0a..3a2f227793 100644 --- a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/config/PersistenceJPAConfigDeletion.java +++ b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/config/PersistenceJPAConfigDeletion.java @@ -1,6 +1,6 @@ -package org.baeldung.persistence.deletion.config; +package com.baeldung.persistence.deletion.config; -import org.baeldung.config.PersistenceJPAConfigL2Cache; +import com.baeldung.spring.PersistenceJPAConfigL2Cache; public class PersistenceJPAConfigDeletion extends PersistenceJPAConfigL2Cache { @@ -10,6 +10,6 @@ public class PersistenceJPAConfigDeletion extends PersistenceJPAConfigL2Cache { @Override protected String[] getPackagesToScan() { - return new String[] { "org.baeldung.persistence.deletion.model", "org.baeldung.persistence.model" }; + return new String[] { "com.baeldung.persistence.deletion.model", "com.baeldung.persistence.model" }; } } \ No newline at end of file diff --git a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/model/Bar.java b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/model/Bar.java similarity index 95% rename from persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/model/Bar.java rename to persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/model/Bar.java index 26c4846fd2..85efd573ca 100644 --- a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/model/Bar.java +++ b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/model/Bar.java @@ -1,4 +1,4 @@ -package org.baeldung.persistence.deletion.model; +package com.baeldung.persistence.deletion.model; import javax.persistence.*; import java.util.ArrayList; diff --git a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/model/Baz.java b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/model/Baz.java similarity index 94% rename from persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/model/Baz.java rename to persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/model/Baz.java index 4fb3f8965e..bea97154d4 100644 --- a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/model/Baz.java +++ b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/model/Baz.java @@ -1,4 +1,4 @@ -package org.baeldung.persistence.deletion.model; +package com.baeldung.persistence.deletion.model; import javax.persistence.*; diff --git a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/model/Foo.java b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/model/Foo.java similarity index 95% rename from persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/model/Foo.java rename to persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/model/Foo.java index 00fc34c166..f0d57c5b6e 100644 --- a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/deletion/model/Foo.java +++ b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/deletion/model/Foo.java @@ -1,4 +1,4 @@ -package org.baeldung.persistence.deletion.model; +package com.baeldung.persistence.deletion.model; import org.hibernate.annotations.Where; diff --git a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/DeletionIntegrationTest.java b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/service/DeletionIntegrationTest.java similarity index 94% rename from persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/DeletionIntegrationTest.java rename to persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/service/DeletionIntegrationTest.java index 0dbb7dbfe8..dfc944f649 100644 --- a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/DeletionIntegrationTest.java +++ b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/service/DeletionIntegrationTest.java @@ -1,9 +1,5 @@ -package org.baeldung.persistence.service; +package com.baeldung.persistence.service; -import org.baeldung.persistence.deletion.config.PersistenceJPAConfigDeletion; -import org.baeldung.persistence.deletion.model.Bar; -import org.baeldung.persistence.deletion.model.Baz; -import org.baeldung.persistence.deletion.model.Foo; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -15,6 +11,11 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.annotation.Transactional; +import com.baeldung.persistence.deletion.config.PersistenceJPAConfigDeletion; +import com.baeldung.persistence.deletion.model.Bar; +import com.baeldung.persistence.deletion.model.Baz; +import com.baeldung.persistence.deletion.model.Foo; + import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; diff --git a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/SecondLevelCacheIntegrationTest.java b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/service/SecondLevelCacheIntegrationTest.java similarity index 89% rename from persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/SecondLevelCacheIntegrationTest.java rename to persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/service/SecondLevelCacheIntegrationTest.java index 4de8d321d5..e3436d762e 100644 --- a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/SecondLevelCacheIntegrationTest.java +++ b/persistence-modules/spring-hibernate-5/src/test/java/com/baeldung/persistence/service/SecondLevelCacheIntegrationTest.java @@ -1,9 +1,13 @@ -package org.baeldung.persistence.service; +package com.baeldung.persistence.service; + +import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; +import static org.hamcrest.Matchers.greaterThan; +import static org.junit.Assert.assertThat; + +import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; +import javax.persistence.Query; -import net.sf.ehcache.CacheManager; -import org.baeldung.config.PersistenceJPAConfigL2Cache; -import org.baeldung.persistence.model.Bar; -import org.baeldung.persistence.model.Foo; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -15,13 +19,12 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.support.TransactionTemplate; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; -import javax.persistence.Query; +import com.baeldung.hibernate.cache.model.Bar; +import com.baeldung.hibernate.cache.model.Foo; +import com.baeldung.hibernate.cache.service.FooService; +import com.baeldung.spring.PersistenceJPAConfigL2Cache; -import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; -import static org.hamcrest.Matchers.greaterThan; -import static org.junit.Assert.assertThat; +import net.sf.ehcache.CacheManager; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = { PersistenceJPAConfigL2Cache.class }, loader = AnnotationConfigContextLoader.class) @@ -45,7 +48,7 @@ public class SecondLevelCacheIntegrationTest { final Foo foo = new Foo(randomAlphabetic(6)); fooService.create(foo); fooService.findOne(foo.getId()); - final int size = CacheManager.ALL_CACHE_MANAGERS.get(0).getCache("org.baeldung.persistence.model.Foo").getSize(); + final int size = CacheManager.ALL_CACHE_MANAGERS.get(0).getCache("com.baeldung.hibernate.cache.model.Foo").getSize(); assertThat(size, greaterThan(0)); } @@ -65,7 +68,7 @@ public class SecondLevelCacheIntegrationTest { return nativeQuery.executeUpdate(); }); - final int size = CacheManager.ALL_CACHE_MANAGERS.get(0).getCache("org.baeldung.persistence.model.Foo").getSize(); + final int size = CacheManager.ALL_CACHE_MANAGERS.get(0).getCache("com.baeldung.hibernate.cache.model.Foo").getSize(); assertThat(size, greaterThan(0)); } diff --git a/persistence-modules/spring-jpa/README.md b/persistence-modules/spring-jpa/README.md index e856e4808e..56ce68c126 100644 --- a/persistence-modules/spring-jpa/README.md +++ b/persistence-modules/spring-jpa/README.md @@ -7,9 +7,6 @@ - [The DAO with JPA and Spring](http://www.baeldung.com/spring-dao-jpa) - [JPA Pagination](http://www.baeldung.com/jpa-pagination) - [Sorting with JPA](http://www.baeldung.com/jpa-sort) -- [Hibernate Second-Level Cache](http://www.baeldung.com/hibernate-second-level-cache) -- [Spring, Hibernate and a JNDI Datasource](http://www.baeldung.com/spring-persistence-jpa-jndi-datasource) -- [Deleting Objects with Hibernate](http://www.baeldung.com/delete-with-hibernate) - [Self-Contained Testing Using an In-Memory Database](http://www.baeldung.com/spring-jpa-test-in-memory-database) - [A Guide to Spring AbstractRoutingDatasource](http://www.baeldung.com/spring-abstract-routing-data-source) - [A Guide to Hibernate with Spring 4](http://www.baeldung.com/the-persistence-layer-with-spring-and-jpa) diff --git a/persistence-modules/spring-jpa/pom.xml b/persistence-modules/spring-jpa/pom.xml index 0961cabaff..792f3918b6 100644 --- a/persistence-modules/spring-jpa/pom.xml +++ b/persistence-modules/spring-jpa/pom.xml @@ -44,11 +44,6 @@ hibernate-entitymanager ${hibernate.version} - - org.hibernate - hibernate-ehcache - ${hibernate.version} - xml-apis xml-apis diff --git a/persistence-modules/spring-jpa/src/main/resources/persistence-h2.properties b/persistence-modules/spring-jpa/src/main/resources/persistence-h2.properties index 716a96fde3..a3060cc796 100644 --- a/persistence-modules/spring-jpa/src/main/resources/persistence-h2.properties +++ b/persistence-modules/spring-jpa/src/main/resources/persistence-h2.properties @@ -7,7 +7,4 @@ 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=true -hibernate.cache.use_query_cache=true -hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory \ No newline at end of file +hibernate.hbm2ddl.auto=create-drop \ No newline at end of file diff --git a/persistence-modules/spring-jpa/src/test/java/com/baeldung/SpringContextIntegrationTest.java b/persistence-modules/spring-jpa/src/test/java/com/baeldung/SpringContextIntegrationTest.java index 822cbb8ed5..9b0cdf180f 100644 --- a/persistence-modules/spring-jpa/src/test/java/com/baeldung/SpringContextIntegrationTest.java +++ b/persistence-modules/spring-jpa/src/test/java/com/baeldung/SpringContextIntegrationTest.java @@ -1,6 +1,6 @@ package com.baeldung; -import org.baeldung.config.PersistenceJPAConfigL2Cache; +import org.baeldung.config.PersistenceJPAConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.annotation.DirtiesContext; @@ -10,7 +10,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader; import org.springframework.test.context.web.WebAppConfiguration; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { PersistenceJPAConfigL2Cache.class }, loader = AnnotationConfigContextLoader.class) +@ContextConfiguration(classes = { PersistenceJPAConfig.class }, loader = AnnotationConfigContextLoader.class) @WebAppConfiguration @DirtiesContext public class SpringContextIntegrationTest { diff --git a/persistence-modules/spring-jpa/src/test/java/com/baeldung/SpringContextTest.java b/persistence-modules/spring-jpa/src/test/java/com/baeldung/SpringContextTest.java index 291e49d0c4..de333eef91 100644 --- a/persistence-modules/spring-jpa/src/test/java/com/baeldung/SpringContextTest.java +++ b/persistence-modules/spring-jpa/src/test/java/com/baeldung/SpringContextTest.java @@ -1,6 +1,6 @@ package com.baeldung; -import org.baeldung.config.PersistenceJPAConfigL2Cache; +import org.baeldung.config.PersistenceJPAConfig; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.test.annotation.DirtiesContext; @@ -10,7 +10,7 @@ import org.springframework.test.context.support.AnnotationConfigContextLoader; import org.springframework.test.context.web.WebAppConfiguration; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { PersistenceJPAConfigL2Cache.class }, loader = AnnotationConfigContextLoader.class) +@ContextConfiguration(classes = { PersistenceJPAConfig.class }, loader = AnnotationConfigContextLoader.class) @WebAppConfiguration @DirtiesContext public class SpringContextTest { diff --git a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooPaginationPersistenceIntegrationTest.java b/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooPaginationPersistenceIntegrationTest.java index bf49a431e1..76c34affb9 100644 --- a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooPaginationPersistenceIntegrationTest.java +++ b/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooPaginationPersistenceIntegrationTest.java @@ -16,7 +16,6 @@ import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; import org.baeldung.config.PersistenceJPAConfig; -import org.baeldung.config.PersistenceJPAConfigL2Cache; import org.baeldung.persistence.model.Foo; import org.junit.Before; import org.junit.Test; @@ -28,7 +27,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { PersistenceJPAConfigL2Cache.class }, loader = AnnotationConfigContextLoader.class) +@ContextConfiguration(classes = { PersistenceJPAConfig.class }, loader = AnnotationConfigContextLoader.class) @DirtiesContext public class FooPaginationPersistenceIntegrationTest { diff --git a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java b/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java index 45316cf06c..e1b53c8ded 100644 --- a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServicePersistenceIntegrationTest.java @@ -3,7 +3,6 @@ package org.baeldung.persistence.service; import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; import org.baeldung.config.PersistenceJPAConfig; -import org.baeldung.config.PersistenceJPAConfigL2Cache; import org.baeldung.persistence.model.Foo; import org.junit.Assert; import org.junit.Test; @@ -18,7 +17,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { PersistenceJPAConfigL2Cache.class }, loader = AnnotationConfigContextLoader.class) +@ContextConfiguration(classes = { PersistenceJPAConfig.class }, loader = AnnotationConfigContextLoader.class) @DirtiesContext public class FooServicePersistenceIntegrationTest { diff --git a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServiceSortingIntegrationTest.java b/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServiceSortingIntegrationTest.java index 61a3bfd565..40249b4b30 100644 --- a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServiceSortingIntegrationTest.java +++ b/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServiceSortingIntegrationTest.java @@ -10,7 +10,7 @@ import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; -import org.baeldung.config.PersistenceJPAConfigL2Cache; +import org.baeldung.config.PersistenceJPAConfig; import org.baeldung.persistence.model.Bar; import org.baeldung.persistence.model.Foo; import org.junit.Test; @@ -21,7 +21,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { PersistenceJPAConfigL2Cache.class }, loader = AnnotationConfigContextLoader.class) +@ContextConfiguration(classes = { PersistenceJPAConfig.class }, loader = AnnotationConfigContextLoader.class) @DirtiesContext @SuppressWarnings("unchecked") public class FooServiceSortingIntegrationTest { diff --git a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServiceSortingWitNullsManualIntegrationTest.java b/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServiceSortingWitNullsManualIntegrationTest.java index 50fdf5f0f3..c530003ac1 100644 --- a/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServiceSortingWitNullsManualIntegrationTest.java +++ b/persistence-modules/spring-jpa/src/test/java/org/baeldung/persistence/service/FooServiceSortingWitNullsManualIntegrationTest.java @@ -10,7 +10,6 @@ import javax.persistence.PersistenceContext; import javax.persistence.Query; import org.baeldung.config.PersistenceJPAConfig; -import org.baeldung.config.PersistenceJPAConfigL2Cache; import org.baeldung.persistence.model.Foo; import org.junit.Test; import org.junit.runner.RunWith; @@ -21,7 +20,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; @RunWith(SpringJUnit4ClassRunner.class) -@ContextConfiguration(classes = { PersistenceJPAConfigL2Cache.class }, loader = AnnotationConfigContextLoader.class) +@ContextConfiguration(classes = { PersistenceJPAConfig.class }, loader = AnnotationConfigContextLoader.class) @DirtiesContext public class FooServiceSortingWitNullsManualIntegrationTest {