Skip to content

Commit 0fd0f22

Browse files
author
Eugen
committed
persistence work
1 parent 6f8e29d commit 0fd0f22

File tree

12 files changed

+39
-101
lines changed

12 files changed

+39
-101
lines changed

spring-security-rest-full/pom.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@
8080
<artifactId>spring-orm</artifactId>
8181
<version>${org.springframework.version}</version>
8282
</dependency>
83+
<dependency>
84+
<groupId>org.springframework.data</groupId>
85+
<artifactId>spring-data-jpa</artifactId>
86+
<version>${spring-data-jpa.version}</version>
87+
</dependency>
8388
<dependency>
8489
<groupId>org.hibernate</groupId>
8590
<artifactId>hibernate-core</artifactId>
@@ -210,6 +215,7 @@
210215
<!-- persistence -->
211216
<hibernate.version>4.2.2.Final</hibernate.version>
212217
<mysql-connector-java.version>5.1.25</mysql-connector-java.version>
218+
<spring-data-jpa.version>1.3.2.RELEASE</spring-data-jpa.version>
213219

214220
<!-- logging -->
215221
<org.slf4j.version>1.7.5</org.slf4j.version>

spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IOperations.java renamed to spring-security-rest-full/src/main/java/org/baeldung/persistence/IOperations.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package org.baeldung.persistence.dao.common;
1+
package org.baeldung.persistence;
22

33
import java.io.Serializable;
44
import java.util.List;
@@ -9,7 +9,7 @@ public interface IOperations<T extends Serializable> {
99

1010
List<T> findAll();
1111

12-
void create(final T entity);
12+
T create(final T entity);
1313

1414
T update(final T entity);
1515

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package org.baeldung.persistence.dao;
22

3-
import org.baeldung.persistence.dao.common.IOperations;
43
import org.baeldung.persistence.model.Foo;
4+
import org.springframework.data.jpa.repository.JpaRepository;
5+
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
56

6-
public interface IFooDao extends IOperations<Foo> {
7+
public interface IFooDao extends JpaRepository<Foo, Long>, JpaSpecificationExecutor<Foo> {
78
//
89
}

spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/AbstractHibernateDao.java

Lines changed: 0 additions & 65 deletions
This file was deleted.

spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/GenericHibernateDao.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

spring-security-rest-full/src/main/java/org/baeldung/persistence/dao/common/IGenericDao.java

Lines changed: 0 additions & 7 deletions
This file was deleted.

spring-security-rest-full/src/main/java/org/baeldung/persistence/service/IFooService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package org.baeldung.persistence.service;
22

3-
import org.baeldung.persistence.dao.common.IOperations;
3+
import org.baeldung.persistence.IOperations;
44
import org.baeldung.persistence.model.Foo;
55

66
public interface IFooService extends IOperations<Foo> {

spring-security-rest-full/src/main/java/org/baeldung/persistence/service/common/AbstractService.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,35 @@
33
import java.io.Serializable;
44
import java.util.List;
55

6-
import org.baeldung.persistence.dao.common.IOperations;
6+
import org.baeldung.persistence.IOperations;
7+
import org.springframework.data.repository.PagingAndSortingRepository;
78
import org.springframework.transaction.annotation.Transactional;
89

10+
import com.google.common.collect.Lists;
11+
912
@Transactional
1013
public abstract class AbstractService<T extends Serializable> implements IOperations<T> {
1114

1215
@Override
16+
@Transactional(readOnly = true)
1317
public T findOne(final long id) {
1418
return getDao().findOne(id);
1519
}
1620

1721
@Override
22+
@Transactional(readOnly = true)
1823
public List<T> findAll() {
19-
return getDao().findAll();
24+
return Lists.newArrayList(getDao().findAll());
2025
}
2126

2227
@Override
23-
public void create(final T entity) {
24-
getDao().create(entity);
28+
public T create(final T entity) {
29+
return getDao().save(entity);
2530
}
2631

2732
@Override
2833
public T update(final T entity) {
29-
return getDao().update(entity);
34+
return getDao().save(entity);
3035
}
3136

3237
@Override
@@ -36,9 +41,9 @@ public void delete(final T entity) {
3641

3742
@Override
3843
public void deleteById(final long entityId) {
39-
getDao().deleteById(entityId);
44+
getDao().delete(entityId);
4045
}
4146

42-
protected abstract IOperations<T> getDao();
47+
protected abstract PagingAndSortingRepository<T, Long> getDao();
4348

4449
}

spring-security-rest-full/src/main/java/org/baeldung/persistence/service/impl/FooService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package org.baeldung.persistence.service.impl;
22

33
import org.baeldung.persistence.dao.IFooDao;
4-
import org.baeldung.persistence.dao.common.IOperations;
54
import org.baeldung.persistence.model.Foo;
65
import org.baeldung.persistence.service.IFooService;
76
import org.baeldung.persistence.service.common.AbstractService;
87
import org.springframework.beans.factory.annotation.Autowired;
8+
import org.springframework.data.repository.PagingAndSortingRepository;
99
import org.springframework.stereotype.Service;
1010
import org.springframework.transaction.annotation.Transactional;
1111

@@ -23,7 +23,7 @@ public FooService() {
2323
// API
2424

2525
@Override
26-
protected IOperations<Foo> getDao() {
26+
protected PagingAndSortingRepository<Foo, Long> getDao() {
2727
return dao;
2828
}
2929

spring-security-rest-full/src/main/java/org/baeldung/spring/PersistenceConfig.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import org.springframework.context.annotation.Bean;
99
import org.springframework.context.annotation.ComponentScan;
1010
import org.springframework.context.annotation.Configuration;
11+
import org.springframework.context.annotation.ImportResource;
1112
import org.springframework.context.annotation.PropertySource;
1213
import org.springframework.core.env.Environment;
1314
import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
@@ -22,6 +23,7 @@
2223
@EnableTransactionManagement
2324
@PropertySource({ "classpath:persistence-mysql.properties" })
2425
@ComponentScan({ "org.baeldung.persistence" })
26+
@ImportResource("classpath*:springDataPersistenceConfig.xml")
2527
public class PersistenceConfig {
2628

2729
@Autowired

0 commit comments

Comments
 (0)