Skip to content

Commit 773e352

Browse files
completed implementation of Spring Data JPA
1 parent 57792af commit 773e352

File tree

13 files changed

+238
-5
lines changed

13 files changed

+238
-5
lines changed

src/main/java/guru/springframework/domain/User.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public class User extends AbstractDomainClass {
2626
@OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
2727
private Cart cart;
2828

29-
@ManyToMany
29+
@ManyToMany(fetch = FetchType.EAGER)
3030
@JoinTable
3131
// ~ defaults to @JoinTable(name = "USER_ROLE", joinColumns = @JoinColumn(name = "user_id"),
3232
// inverseJoinColumns = @joinColumn(name = "role_id"))

src/main/java/guru/springframework/domain/security/Role.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import guru.springframework.domain.User;
55

66
import javax.persistence.Entity;
7+
import javax.persistence.FetchType;
78
import javax.persistence.JoinTable;
89
import javax.persistence.ManyToMany;
910
import java.util.ArrayList;
@@ -17,7 +18,7 @@ public class Role extends AbstractDomainClass {
1718

1819
private String role;
1920

20-
@ManyToMany
21+
@ManyToMany(fetch = FetchType.EAGER)
2122
@JoinTable
2223
// ~ defaults to @JoinTable(name = "USER_ROLE", joinColumns = @JoinColumn(name = "role_id"),
2324
// inverseJoinColumns = @joinColumn(name = "user_id"))
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package guru.springframework.repositories;
2+
3+
import guru.springframework.domain.Customer;
4+
import org.springframework.data.repository.CrudRepository;
5+
6+
/**
7+
* Created by jt on 12/21/15.
8+
*/
9+
public interface CustomerRepository extends CrudRepository<Customer, Integer>{
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package guru.springframework.repositories;
2+
3+
import guru.springframework.domain.Order;
4+
import org.springframework.data.repository.CrudRepository;
5+
6+
/**
7+
* Created by jt on 12/21/15.
8+
*/
9+
public interface OrderRepository extends CrudRepository<Order, Integer> {
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package guru.springframework.repositories;
2+
3+
import guru.springframework.domain.security.Role;
4+
import org.springframework.data.repository.CrudRepository;
5+
6+
/**
7+
* Created by jt on 12/21/15.
8+
*/
9+
public interface RoleRepsoitory extends CrudRepository<Role, Integer> {
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package guru.springframework.repositories;
2+
3+
import guru.springframework.domain.User;
4+
import org.springframework.data.repository.CrudRepository;
5+
6+
/**
7+
* Created by jt on 12/21/15.
8+
*/
9+
public interface UserRepository extends CrudRepository<User, Integer> {
10+
}

src/main/java/guru/springframework/services/jpaservices/ProductServiceJpaDaoImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
* Created by jt on 12/9/15.
1313
*/
1414
@Service
15-
@Profile("jpadao-dontuse")
15+
@Profile("jpadao")
1616
public class ProductServiceJpaDaoImpl extends AbstractJpaDaoService implements ProductService {
1717

1818
@Override
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package guru.springframework.services.reposervices;
2+
3+
import guru.springframework.domain.Customer;
4+
import guru.springframework.repositories.CustomerRepository;
5+
import guru.springframework.services.CustomerService;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.context.annotation.Profile;
8+
import org.springframework.stereotype.Service;
9+
10+
import java.util.ArrayList;
11+
import java.util.List;
12+
13+
/**
14+
* Created by jt on 12/21/15.
15+
*/
16+
@Service
17+
@Profile("springdatajpa")
18+
public class CustomerServiceRepoImpl implements CustomerService {
19+
20+
private CustomerRepository customerRepository;
21+
22+
@Autowired
23+
public void setCustomerRepository(CustomerRepository customerRepository) {
24+
this.customerRepository = customerRepository;
25+
}
26+
27+
@Override
28+
public List<?> listAll() {
29+
List<Customer> customers = new ArrayList<>();
30+
customerRepository.findAll().forEach(customers::add); //fun with Java 8
31+
return customers;
32+
}
33+
34+
@Override
35+
public Customer getById(Integer id) {
36+
return customerRepository.findOne(id);
37+
}
38+
39+
@Override
40+
public Customer saveOrUpdate(Customer domainObject) {
41+
return customerRepository.save(domainObject);
42+
}
43+
44+
@Override
45+
public void delete(Integer id) {
46+
customerRepository.delete(id);
47+
}
48+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package guru.springframework.services.reposervices;
2+
3+
import guru.springframework.domain.Order;
4+
import guru.springframework.repositories.OrderRepository;
5+
import guru.springframework.services.OrderService;
6+
import org.springframework.beans.factory.annotation.Autowired;
7+
import org.springframework.context.annotation.Profile;
8+
import org.springframework.stereotype.Service;
9+
10+
import java.util.ArrayList;
11+
import java.util.List;
12+
13+
/**
14+
* Created by jt on 12/21/15.
15+
*/
16+
@Service
17+
@Profile("springdatajpa")
18+
public class OrderServiceRepoImpl implements OrderService {
19+
20+
private OrderRepository orderRepository;
21+
22+
@Autowired
23+
public void setOrderRepository(OrderRepository orderRepository) {
24+
this.orderRepository = orderRepository;
25+
}
26+
27+
@Override
28+
public List<?> listAll() {
29+
List<Order> orders = new ArrayList<>();
30+
orderRepository.findAll().forEach(orders::add); //fun with Java 8
31+
return orders;
32+
}
33+
34+
@Override
35+
public Order getById(Integer id) {
36+
return orderRepository.findOne(id);
37+
}
38+
39+
@Override
40+
public Order saveOrUpdate(Order domainObject) {
41+
return orderRepository.save(domainObject);
42+
}
43+
44+
@Override
45+
public void delete(Integer id) {
46+
orderRepository.delete(id);
47+
}
48+
}

src/main/java/guru/springframework/services/reposervices/ProductServiceRepoImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* Created by jt on 12/18/15.
1515
*/
1616
@Service
17-
@Profile({"springdatajpa", "jpadao"})
17+
@Profile({"springdatajpa"})
1818
public class ProductServiceRepoImpl implements ProductService {
1919

2020
private ProductRepository productRepository;

0 commit comments

Comments
 (0)