From 011d6a1f78162dcdbf04161574c79f8e5e06fd8a Mon Sep 17 00:00:00 2001 From: eugenp Date: Sat, 18 May 2013 16:58:37 +0300 Subject: [PATCH] persistence work (unstable) --- .../dao/common/AbstractHibernateDao.java | 4 +- .../persistence/dao/common/IOperations.java | 2 +- .../service/common/AbstractService.java | 42 +++++++++++++++++++ .../service/{ => impl}/FooService.java | 11 +++-- .../FooServicePersistenceIntegrationTest.java | 1 + 5 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java rename spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/{ => impl}/FooService.java (56%) diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java index 25d14cd697..0d9a691ab8 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/AbstractHibernateDao.java @@ -33,9 +33,9 @@ public abstract class AbstractHibernateDao implements IO } @Override - public final long create(final T entity) { + public final void create(final T entity) { Preconditions.checkNotNull(entity); - return (Long) getCurrentSession().save(entity); + getCurrentSession().save(entity); } @Override diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java index 716bd40e9b..12ac048d74 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/dao/common/IOperations.java @@ -9,7 +9,7 @@ public interface IOperations { List findAll(); - long create(final T entity); + void create(final T entity); T update(final T entity); diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java new file mode 100644 index 0000000000..009bb03c45 --- /dev/null +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/common/AbstractService.java @@ -0,0 +1,42 @@ +package org.baeldung.spring.persistence.service.common; + +import java.io.Serializable; +import java.util.List; + +import org.baeldung.spring.persistence.dao.common.IOperations; + +public abstract class AbstractService implements IOperations { + + @Override + public T findOne(final long id) { + return getDao().findOne(id); + } + + @Override + public List findAll() { + return getDao().findAll(); + } + + @Override + public void create(final T entity) { + getDao().create(entity); + } + + @Override + public T update(final T entity) { + return getDao().update(entity); + } + + @Override + public void delete(final T entity) { + getDao().delete(entity); + } + + @Override + public void deleteById(final long entityId) { + getDao().deleteById(entityId); + } + + protected abstract IOperations getDao(); + +} diff --git a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java similarity index 56% rename from spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java rename to spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java index 1d3b5c4a02..7438258e30 100644 --- a/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/FooService.java +++ b/spring-hibernate4/src/main/java/org/baeldung/spring/persistence/service/impl/FooService.java @@ -1,14 +1,16 @@ -package org.baeldung.spring.persistence.service; +package org.baeldung.spring.persistence.service.impl; import org.baeldung.spring.persistence.dao.IFooDao; +import org.baeldung.spring.persistence.dao.common.IOperations; import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.spring.persistence.service.common.AbstractService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service @Transactional -public class FooService { +public class FooService extends AbstractService { @Autowired private IFooDao dao; @@ -19,8 +21,9 @@ public class FooService { // API - public void create(final Foo entity) { - dao.create(entity); + @Override + protected IOperations getDao() { + return dao; } } diff --git a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java index 576f536adc..bc629f4ae3 100644 --- a/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java +++ b/spring-hibernate4/src/test/java/org/baeldung/spring/persistence/service/FooServicePersistenceIntegrationTest.java @@ -4,6 +4,7 @@ import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic; import org.baeldung.spring.persistence.config.PersistenceConfig; import org.baeldung.spring.persistence.model.Foo; +import org.baeldung.spring.persistence.service.impl.FooService; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith;