1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.syncope.core.persistence.jpa.dao;
20
21 import java.util.List;
22 import javax.persistence.Query;
23 import javax.persistence.TypedQuery;
24 import org.apache.syncope.common.keymaster.client.api.model.NetworkService;
25 import org.apache.syncope.core.persistence.api.dao.NetworkServiceDAO;
26 import org.apache.syncope.core.persistence.api.entity.NetworkServiceEntity;
27 import org.apache.syncope.core.persistence.jpa.entity.JPANetworkService;
28 import org.springframework.transaction.annotation.Transactional;
29
30 public class JPANetworkServiceDAO extends AbstractDAO<NetworkServiceEntity> implements NetworkServiceDAO {
31
32 @Transactional(readOnly = true)
33 @Override
34 public List<NetworkServiceEntity> findAll(final NetworkService.Type serviceType) {
35 TypedQuery<NetworkServiceEntity> query = entityManager().createQuery(
36 "SELECT e FROM " + JPANetworkService.class.getSimpleName()
37 + " e WHERE e.type=:serviceType", NetworkServiceEntity.class);
38 query.setParameter("serviceType", serviceType);
39 return query.getResultList();
40 }
41
42 @Override
43 public NetworkServiceEntity save(final NetworkServiceEntity service) {
44 return entityManager().merge(service);
45 }
46
47 @Override
48 public void delete(final NetworkServiceEntity service) {
49 entityManager().remove(service);
50 }
51
52 @Override
53 public int deleteAll(final NetworkService service) {
54 Query query = entityManager().createQuery(
55 "DELETE FROM " + JPANetworkService.class.getSimpleName()
56 + " e WHERE e.type=:serviceType AND e.address=:address");
57 query.setParameter("serviceType", service.getType());
58 query.setParameter("address", service.getAddress());
59
60 return query.executeUpdate();
61 }
62 }