1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.seasar.tuigwaa.database.function;
17
18 import java.util.ArrayList;
19 import java.util.List;
20
21 import org.hibernate.Criteria;
22 import org.hibernate.Session;
23 import org.seasar.tuigwaa.database.function.criteria.HibernateCriteria;
24 import org.seasar.tuigwaa.database.function.criteria.ICriteria;
25
26
27 public abstract class AbstractCriteriaExeFunction extends AbstractExeFunction{
28
29 private List projectionList_;
30
31 public List getProjectionList() {
32 return projectionList_;
33 }
34
35 public boolean isProjection() {
36 return (projectionList_ != null);
37 }
38
39 public void addProjection(String projection) {
40 if (projectionList_ == null) {
41 projectionList_ = new ArrayList();
42 }
43 projectionList_.add(projection);
44 }
45
46 protected final ICriteria createHibernateCriteria() {
47 Session session = getSession();
48 Class clazz = getEntity().getJavaClass();
49 Criteria criteria = session.createCriteria(clazz);
50
51 ICriteria icriteria = null;
52 if (isProjection()) {
53 icriteria = new HibernateCriteria(criteria, getAggregationEntity());
54 } else {
55 icriteria = new HibernateCriteria(criteria, getEntity());
56 }
57 return icriteria;
58 }
59 }