20
20
import org .hibernate .classic .Session ;
21
21
import org .hibernate .criterion .Conjunction ;
22
22
import org .hibernate .criterion .Disjunction ;
23
- import org .hibernate .criterion .Expression ;
24
23
import org .hibernate .criterion .Junction ;
25
24
import org .hibernate .criterion .MatchMode ;
26
25
import org .hibernate .criterion .Order ;
@@ -102,7 +101,7 @@ public Provider getProviderByUuid(String uuid) {
102
101
public Collection <Provider > getProvidersByPerson (Person person , boolean includeRetired ) {
103
102
Criteria criteria = getSession ().createCriteria (Provider .class );
104
103
if (!includeRetired ) {
105
- criteria .add (Expression .eq ("retired" , false ));
104
+ criteria .add (Restrictions .eq ("retired" , false ));
106
105
} else {
107
106
//push retired Provider to the end of the returned list
108
107
criteria .addOrder (Order .asc ("retired" ));
@@ -138,15 +137,13 @@ public ProviderAttribute getProviderAttributeByUuid(String uuid) {
138
137
@ Override
139
138
public List <Provider > getProviders (String name , Map <ProviderAttributeType , String > serializedAttributeValues ,
140
139
Integer start , Integer length , boolean includeRetired ) {
141
- Criteria criteria = prepareProviderCriteria (name );
140
+ Criteria criteria = prepareProviderCriteria (name , includeRetired );
142
141
if (start != null )
143
142
criteria .setFirstResult (start );
144
143
if (length != null )
145
144
criteria .setMaxResults (length );
146
145
147
- if (!includeRetired ) {
148
- criteria .add (Expression .eq ("retired" , false ));
149
- } else {
146
+ if (includeRetired ) {
150
147
//push retired Provider to the end of the returned list
151
148
criteria .addOrder (Order .asc ("retired" ));
152
149
}
@@ -163,15 +160,18 @@ public List<Provider> getProviders(String name, Map<ProviderAttributeType, Strin
163
160
* Creates a Provider Criteria based on name
164
161
*
165
162
* @param name represents provider name
163
+ * @param includeRetired
166
164
* @return Criteria represents the hibernate criteria to search
167
165
*/
168
- private Criteria prepareProviderCriteria (String name ) {
166
+ private Criteria prepareProviderCriteria (String name , boolean includeRetired ) {
169
167
if (StringUtils .isBlank (name )) {
170
168
name = "%" ;
171
169
}
172
170
173
171
Criteria criteria = sessionFactory .getCurrentSession ().createCriteria (Provider .class ).createAlias ("person" , "p" ,
174
172
Criteria .LEFT_JOIN );
173
+ if (!includeRetired )
174
+ criteria .add (Restrictions .eq ("retired" , false ));
175
175
176
176
criteria .setResultTransformer (Criteria .DISTINCT_ROOT_ENTITY );
177
177
@@ -221,8 +221,8 @@ private Junction getNameSearchExpression(String name) {
221
221
* @see org.openmrs.api.db.ProviderDAO#getCountOfProviders(java.lang.String)
222
222
*/
223
223
@ Override
224
- public Long getCountOfProviders (String name ) {
225
- Criteria criteria = prepareProviderCriteria (name );
224
+ public Long getCountOfProviders (String name , boolean includeRetired ) {
225
+ Criteria criteria = prepareProviderCriteria (name , includeRetired );
226
226
criteria .setProjection (Projections .countDistinct ("providerId" ));
227
227
return (Long ) criteria .uniqueResult ();
228
228
}
@@ -238,7 +238,7 @@ public List<ProviderAttributeType> getAllProviderAttributeTypes(boolean includeR
238
238
private <T > List <T > getAll (boolean includeRetired , Class <T > clazz ) {
239
239
Criteria criteria = getSession ().createCriteria (clazz );
240
240
if (!includeRetired ) {
241
- criteria .add (Expression .eq ("retired" , false ));
241
+ criteria .add (Restrictions .eq ("retired" , false ));
242
242
} else {
243
243
//push retired Provider to the end of the returned list
244
244
criteria .addOrder (Order .asc ("retired" ));
0 commit comments