Revision 0327830c
Added by Katja Luther almost 3 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/agent/IAgentDao.java | ||
---|---|---|
20 | 20 |
import eu.etaxonomy.cdm.model.agent.Person; |
21 | 21 |
import eu.etaxonomy.cdm.model.agent.Team; |
22 | 22 |
import eu.etaxonomy.cdm.persistence.dao.common.IIdentifiableDao; |
23 |
import eu.etaxonomy.cdm.persistence.dto.TeamOrPersonUuidAndTitleCache; |
|
23 | 24 |
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache; |
24 | 25 |
import eu.etaxonomy.cdm.persistence.query.MatchMode; |
25 | 26 |
import eu.etaxonomy.cdm.persistence.query.OrderHint; |
... | ... | |
107 | 108 |
|
108 | 109 |
public List<UuidAndTitleCache<Institution>> getInstitutionUuidAndTitleCache(Integer limit, String pattern); |
109 | 110 |
|
110 |
public <T extends AgentBase> List<UuidAndTitleCache<T>> getUuidAndAbbrevTitleCache(Class<T> clazz, Integer limit, String pattern); |
|
111 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getUuidAndAbbrevTitleCache(Class<T> clazz, Integer limit, String pattern);
|
|
111 | 112 |
|
112 | 113 |
public <T extends AgentBase<?>> List<T> findByTitleAndAbbrevTitle(Class<T> clazz, String queryString, MatchMode matchmode, |
113 | 114 |
List<Criterion> criterion, Integer pageSize, Integer pageNumber, List<OrderHint> orderHints, |
114 | 115 |
List<String> propertyPaths); |
116 |
|
|
117 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getUuidAndTitleCacheWithCollector(Class<T> clazz, Integer limit, String pattern); |
|
118 |
|
|
119 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getTeamOrPersonUuidAndTitleCache(Class<T> clazz, Integer limit, String pattern); |
|
115 | 120 |
} |
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/persistence/dao/hibernate/agent/AgentDaoImpl.java | ||
---|---|---|
31 | 31 |
import eu.etaxonomy.cdm.model.agent.InstitutionalMembership; |
32 | 32 |
import eu.etaxonomy.cdm.model.agent.Person; |
33 | 33 |
import eu.etaxonomy.cdm.model.agent.Team; |
34 |
import eu.etaxonomy.cdm.model.common.IAnnotatableEntity; |
|
35 | 34 |
import eu.etaxonomy.cdm.model.view.AuditEvent; |
36 | 35 |
import eu.etaxonomy.cdm.persistence.dao.agent.IAgentDao; |
37 | 36 |
import eu.etaxonomy.cdm.persistence.dao.hibernate.common.IdentifiableDaoBase; |
... | ... | |
178 | 177 |
} |
179 | 178 |
|
180 | 179 |
@Override |
181 |
public <T extends AgentBase> List<UuidAndTitleCache<T>> getUuidAndTitleCache(Class<T> clazz, Integer limit, String pattern){
|
|
180 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getUuidAndTitleCacheWithCollector(Class<T> clazz, Integer limit, String pattern){
|
|
182 | 181 |
Session session = getSession(); |
183 | 182 |
|
184 | 183 |
clazz = clazz == null? (Class)type : clazz; |
... | ... | |
187 | 186 |
Query query = null; |
188 | 187 |
|
189 | 188 |
if (pattern != null){ |
190 |
String whereClause = " WHERE nomenclaturalTitleCache LIKE :pattern";
|
|
189 |
String whereClause = " WHERE collectorTitleCache LIKE :pattern";
|
|
191 | 190 |
whereClause += " OR titleCache LIKE :pattern"; |
192 |
whereClause += " OR collectorTitleCache like :pattern";
|
|
191 |
whereClause += " OR nomenclaturalTitleCache like :pattern";
|
|
193 | 192 |
|
194 | 193 |
query = session.createQuery("SELECT DISTINCT uuid, id, nomenclaturalTitleCache, titleCache, collectorTitleCache " + clazzString + whereClause); |
195 | 194 |
pattern = pattern + "%"; |
... | ... | |
203 | 202 |
query.setMaxResults(limit); |
204 | 203 |
} |
205 | 204 |
|
206 |
return getUuidAndAbbrevTitleCache(query);
|
|
205 |
return getTeamOrPersonUuidAndTitleCache(query);
|
|
207 | 206 |
} |
208 | 207 |
|
209 | 208 |
@Override |
210 |
public <T extends AgentBase> List<UuidAndTitleCache<T>> getUuidAndAbbrevTitleCache(Class<T> clazz, Integer limit, String pattern){ |
|
209 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getTeamOrPersonUuidAndTitleCache(Class<T> clazz, Integer limit, String pattern){ |
|
210 |
Session session = getSession(); |
|
211 |
|
|
212 |
clazz = clazz == null? (Class)type : clazz; |
|
213 |
String clazzString = " FROM " + clazz.getSimpleName(); |
|
214 |
|
|
215 |
Query query = null; |
|
216 |
|
|
217 |
if (pattern != null){ |
|
218 |
String whereClause = " WHERE titleCache LIKE :pattern"; |
|
219 |
|
|
220 |
|
|
221 |
query = session.createQuery("SELECT DISTINCT uuid, id, nomenclaturalTitleCache, titleCache, collectorTitleCache " + clazzString + whereClause); |
|
222 |
pattern = pattern + "%"; |
|
223 |
pattern = pattern.replace("*", "%"); |
|
224 |
pattern = pattern.replace("?", "_"); |
|
225 |
query.setParameter("pattern", pattern); |
|
226 |
} else { |
|
227 |
query = session.createQuery("SELECT DISTINCT uuid, id, nomenclaturalTitleCache, titleCache, collectorTitleCache " + clazzString); |
|
228 |
} |
|
229 |
if (limit != null){ |
|
230 |
query.setMaxResults(limit); |
|
231 |
} |
|
232 |
|
|
233 |
return getTeamOrPersonUuidAndTitleCache(query); |
|
234 |
} |
|
235 |
|
|
236 |
|
|
237 |
@Override |
|
238 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getUuidAndAbbrevTitleCache(Class<T> clazz, Integer limit, String pattern){ |
|
211 | 239 |
Session session = getSession(); |
212 | 240 |
|
213 | 241 |
clazz = clazz == null? (Class)type : clazz; |
... | ... | |
234 | 262 |
query.setMaxResults(limit); |
235 | 263 |
} |
236 | 264 |
|
237 |
return getUuidAndAbbrevTitleCache(query);
|
|
265 |
return getTeamOrPersonUuidAndTitleCache(query);
|
|
238 | 266 |
} |
239 | 267 |
|
240 | 268 |
@Override |
... | ... | |
247 | 275 |
return findByParam(clazz, params, queryString, matchmode, criterion, pageSize, pageNumber, orderHints, propertyPaths); |
248 | 276 |
} |
249 | 277 |
|
250 |
@Override |
|
251 |
protected <E extends IAnnotatableEntity> List<UuidAndTitleCache<E>> getUuidAndAbbrevTitleCache(Query query){ |
|
252 |
List<UuidAndTitleCache<E>> list = new ArrayList<>(); |
|
253 | 278 |
|
254 |
List<Object[]> result = query.list(); |
|
255 | 279 |
|
256 |
for(Object[] object : result){ |
|
257 |
list.add(new TeamOrPersonUuidAndTitleCache<E>((UUID) object[0],(Integer) object[1], (String) object[3], (String) object[2], (String) object[4])); |
|
258 |
} |
|
259 |
return list; |
|
260 |
} |
|
261 | 280 |
|
262 |
@Override |
|
263 |
protected <E extends IAnnotatableEntity> List<UuidAndTitleCache<E>> getUuidAndTitleCache(Query query){ |
|
264 |
List<UuidAndTitleCache<E>> list = new ArrayList<>(); |
|
281 |
protected <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getTeamOrPersonUuidAndTitleCache(Query query){ |
|
282 |
List<TeamOrPersonUuidAndTitleCache<T>> list = new ArrayList<>(); |
|
265 | 283 |
|
266 | 284 |
|
267 | 285 |
List<Object> result = query.list(); |
268 | 286 |
|
269 | 287 |
for(Object obj : result){ |
270 | 288 |
Object[] object = (Object[])obj; |
271 |
list.add(new TeamOrPersonUuidAndTitleCache((UUID) object[0],(Integer) object[1], (String) object[2], (String) object[3], (String) object[4]));
|
|
289 |
list.add(new TeamOrPersonUuidAndTitleCache((UUID) object[0],(Integer) object[1], (String) object[3], (String) object[2], (String) object[4]));
|
|
272 | 290 |
|
273 | 291 |
} |
274 | 292 |
return list; |
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/AgentServiceImpl.java | ||
---|---|---|
32 | 32 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
33 | 33 |
import eu.etaxonomy.cdm.persistence.dao.agent.IAgentDao; |
34 | 34 |
import eu.etaxonomy.cdm.persistence.dao.common.ICdmGenericDao; |
35 |
import eu.etaxonomy.cdm.persistence.dto.TeamOrPersonUuidAndTitleCache; |
|
35 | 36 |
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache; |
36 | 37 |
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy; |
37 | 38 |
import eu.etaxonomy.cdm.strategy.merge.ConvertMergeStrategy; |
... | ... | |
135 | 136 |
|
136 | 137 |
@Override |
137 | 138 |
public List<UuidAndTitleCache<Institution>> getInstitutionUuidAndTitleCache(Integer limit, String pattern) { |
138 |
return dao.getUuidAndAbbrevTitleCache(Institution.class, limit, pattern);
|
|
139 |
return dao.getUuidAndTitleCache(Institution.class, limit, pattern); |
|
139 | 140 |
} |
140 | 141 |
|
141 | 142 |
@Override |
... | ... | |
258 | 259 |
} |
259 | 260 |
|
260 | 261 |
@Override |
261 |
public <T extends AgentBase> List<UuidAndTitleCache<T>> getUuidAndAbbrevTitleCache(Class<T> clazz, Integer limit, String pattern) { |
|
262 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getUuidAndAbbrevTitleCache(Class<T> clazz, Integer limit, String pattern) {
|
|
262 | 263 |
return dao.getUuidAndAbbrevTitleCache(clazz, null, pattern); |
263 | 264 |
} |
264 | 265 |
|
266 |
@Override |
|
267 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getUuidAndTitleCacheWithCollectorTitleCache(Class<T> clazz, Integer limit, String pattern) { |
|
268 |
return dao.getUuidAndTitleCacheWithCollector(clazz, null, pattern); |
|
269 |
} |
|
270 |
|
|
271 |
@Override |
|
272 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getTeamOrPersonUuidAndTitleCache(Class<T> clazz, Integer limit, String pattern) { |
|
273 |
return dao.getTeamOrPersonUuidAndTitleCache(clazz, null, pattern); |
|
274 |
} |
|
275 |
|
|
265 | 276 |
@Override |
266 | 277 |
public <T extends AgentBase<?>> List<T> findByTitleAndAbbrevTitle(IIdentifiableEntityServiceConfigurator<T> config){ |
267 | 278 |
return dao.findByTitleAndAbbrevTitle(config.getClazz(),config.getTitleSearchStringSqlized(), config.getMatchMode(), config.getCriteria(), config.getPageSize(), config.getPageNumber(), config.getOrderHints(), config.getPropertyPaths()); |
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/IAgentService.java | ||
---|---|---|
20 | 20 |
import eu.etaxonomy.cdm.model.agent.InstitutionalMembership; |
21 | 21 |
import eu.etaxonomy.cdm.model.agent.Person; |
22 | 22 |
import eu.etaxonomy.cdm.model.agent.Team; |
23 |
import eu.etaxonomy.cdm.persistence.dto.TeamOrPersonUuidAndTitleCache; |
|
23 | 24 |
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache; |
24 | 25 |
import eu.etaxonomy.cdm.persistence.query.OrderHint; |
25 | 26 |
import eu.etaxonomy.cdm.strategy.merge.MergeException; |
... | ... | |
113 | 114 |
* |
114 | 115 |
* @return a list of <code>UuidAndTitleCache</code> instances |
115 | 116 |
*/ |
116 |
public <T extends AgentBase> List<UuidAndTitleCache<T>> getUuidAndAbbrevTitleCache(Class<T> clazz, Integer limit, String pattern); |
|
117 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getUuidAndAbbrevTitleCache(Class<T> clazz, Integer limit, String pattern); |
|
118 |
|
|
119 |
/** |
|
120 |
* Returns a list of <code>UuidAndTitleCache</code> containing all {@link Institution} objects |
|
121 |
* with their respectiveCollectorTitleCache |
|
122 |
* |
|
123 |
* @return a list of <code>UuidAndTitleCache</code> instances |
|
124 |
*/ |
|
125 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getUuidAndTitleCacheWithCollectorTitleCache(Class<T> clazz, Integer limit, String pattern); |
|
126 |
|
|
127 |
/** |
|
128 |
* Returns a list of <code>UuidAndTitleCache</code> containing all {@link Institution} objects |
|
129 |
* with their respectiveCollectorTitleCache |
|
130 |
* |
|
131 |
* @return a list of <code>UuidAndTitleCache</code> instances |
|
132 |
*/ |
|
133 |
public <T extends AgentBase> List<TeamOrPersonUuidAndTitleCache<T>> getTeamOrPersonUuidAndTitleCache(Class<T> clazz, Integer limit, String pattern); |
|
134 |
|
|
117 | 135 |
|
118 | 136 |
/** |
119 | 137 |
* @param teamUuid |
Also available in: Unified diff
ref #9680: adapt agent search methods to fill teamOrPersonUuidAndTitlecache dto