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.TypedQuery;
23 import org.apache.syncope.core.persistence.api.dao.ReportDAO;
24 import org.apache.syncope.core.persistence.api.entity.Implementation;
25 import org.apache.syncope.core.persistence.api.entity.Report;
26 import org.apache.syncope.core.persistence.jpa.entity.JPAReport;
27 import org.springframework.transaction.annotation.Transactional;
28
29 public class JPAReportDAO extends AbstractDAO<Report> implements ReportDAO {
30
31 @Transactional(readOnly = true)
32 @Override
33 public Report find(final String key) {
34 return entityManager().find(JPAReport.class, key);
35 }
36
37 @Override
38 public List<Report> findByDelegate(final Implementation delegate) {
39 TypedQuery<Report> query = entityManager().createQuery(
40 "SELECT e FROM " + JPAReport.class.getSimpleName() + " e "
41 + "WHERE e.jobDelegate=:delegate", Report.class);
42 query.setParameter("delegate", delegate);
43 return query.getResultList();
44 }
45
46 @Transactional(readOnly = true)
47 @Override
48 public List<Report> findAll() {
49 TypedQuery<Report> query = entityManager().createQuery(
50 "SELECT e FROM " + JPAReport.class.getSimpleName() + " e", Report.class);
51
52 return query.getResultList();
53 }
54
55 @Override
56 @Transactional(rollbackFor = Throwable.class)
57 public Report save(final Report report) {
58 return entityManager().merge(report);
59 }
60
61 @Override
62 public void delete(final String key) {
63 Report report = find(key);
64 if (report == null) {
65 return;
66 }
67
68 delete(report);
69 }
70
71 @Override
72 public void delete(final Report report) {
73 entityManager().remove(report);
74 }
75 }