persistence work (unstable)

This commit is contained in:
eugenp 2013-05-18 16:58:37 +03:00
parent 1a8b39bde6
commit 011d6a1f78
5 changed files with 53 additions and 7 deletions

View File

@ -33,9 +33,9 @@ public abstract class AbstractHibernateDao<T extends Serializable> implements IO
} }
@Override @Override
public final long create(final T entity) { public final void create(final T entity) {
Preconditions.checkNotNull(entity); Preconditions.checkNotNull(entity);
return (Long) getCurrentSession().save(entity); getCurrentSession().save(entity);
} }
@Override @Override

View File

@ -9,7 +9,7 @@ public interface IOperations<T extends Serializable> {
List<T> findAll(); List<T> findAll();
long create(final T entity); void create(final T entity);
T update(final T entity); T update(final T entity);

View File

@ -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<T extends Serializable> implements IOperations<T> {
@Override
public T findOne(final long id) {
return getDao().findOne(id);
}
@Override
public List<T> 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<T> getDao();
}

View File

@ -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.IFooDao;
import org.baeldung.spring.persistence.dao.common.IOperations;
import org.baeldung.spring.persistence.model.Foo; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@Service @Service
@Transactional @Transactional
public class FooService { public class FooService extends AbstractService<Foo> {
@Autowired @Autowired
private IFooDao dao; private IFooDao dao;
@ -19,8 +21,9 @@ public class FooService {
// API // API
public void create(final Foo entity) { @Override
dao.create(entity); protected IOperations<Foo> getDao() {
return dao;
} }
} }

View File

@ -4,6 +4,7 @@ import static org.apache.commons.lang3.RandomStringUtils.randomAlphabetic;
import org.baeldung.spring.persistence.config.PersistenceConfig; import org.baeldung.spring.persistence.config.PersistenceConfig;
import org.baeldung.spring.persistence.model.Foo; import org.baeldung.spring.persistence.model.Foo;
import org.baeldung.spring.persistence.service.impl.FooService;
import org.junit.Ignore; import org.junit.Ignore;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;