1 package fr.ifremer.tutti.persistence.service.referential;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 import fr.ifremer.adagio.core.dao.referential.StatusCode;
28 import fr.ifremer.adagio.core.dao.referential.StatusDao;
29 import fr.ifremer.adagio.core.service.technical.CacheService;
30 import fr.ifremer.tutti.persistence.entities.referential.Status;
31 import fr.ifremer.tutti.persistence.entities.referential.Statuss;
32 import fr.ifremer.tutti.persistence.entities.referential.TuttiReferentialEntity;
33 import fr.ifremer.tutti.persistence.service.AbstractPersistenceService;
34 import org.hibernate.Query;
35
36 import javax.annotation.Resource;
37 import java.util.Iterator;
38
39
40
41
42
43
44
45 public abstract class ReferentialPersistenceServiceSupport extends AbstractPersistenceService {
46
47 @Resource(name = "statusDao")
48 private StatusDao statusDao;
49
50 @Resource(name = "cacheService")
51 protected CacheService cacheService;
52
53 protected Iterator<Object[]> queryListWithStatus(String queryName, Object... params) {
54 Query query = createQuery(queryName, params);
55 query.setString("statusValidCode", StatusCode.ENABLE.getValue());
56 query.setString("statusTemporaryCode", StatusCode.TEMPORARY.getValue());
57
58 return query.iterate();
59 }
60
61 protected Iterator<Object[]> queryListWithStatus2(String queryName, Object... params) {
62 Query query = createQuery(queryName, params);
63 query.setString("statusValidCode", StatusCode.ENABLE.getValue());
64 query.setString("statusTemporaryCode", StatusCode.TEMPORARY.getValue());
65 query.setString("statusDisableCode", StatusCode.DISABLE.getValue());
66
67 return query.iterate();
68 }
69
70 protected Object[] queryUniqueWithStatus(String queryName, Object... params) {
71
72 Query query = createQuery(queryName, params);
73 query.setString("statusValidCode", StatusCode.ENABLE.getValue());
74 query.setString("statusTemporaryCode", StatusCode.TEMPORARY.getValue());
75
76 Object result = query.uniqueResult();
77 return (Object[]) result;
78 }
79
80 protected Object[] queryUniqueWithStatus2(String queryName, Object... params) {
81
82 Query query = createQuery(queryName, params);
83 query.setString("statusValidCode", StatusCode.ENABLE.getValue());
84 query.setString("statusTemporaryCode", StatusCode.TEMPORARY.getValue());
85 query.setString("statusDisableCode", StatusCode.DISABLE.getValue());
86
87 Object result = query.uniqueResult();
88 return (Object[]) result;
89 }
90
91 protected <E extends TuttiReferentialEntity> void setStatus(String statusCode, E entity) {
92 Status newStatus = Statuss.newStatus();
93 fr.ifremer.adagio.core.dao.referential.Status status = statusDao.load(statusCode);
94 newStatus.setId(status.getCode());
95 newStatus.setName(status.getName());
96 entity.setStatus(newStatus);
97 }
98
99 }