PredicatesBuilder.java
3.57 KB
1
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
package com.bsth.entity.search;
import java.text.NumberFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.Path;
import javax.persistence.criteria.Predicate;
/**
*
* @ClassName: PredicatesBuilder
* @author PanZhao
* @date 2016年3月16日 下午4:05:07
*
*/
public class PredicatesBuilder {
/**
* Number转换器
*/
private static NumberFormat nf;
static{
nf = NumberFormat.getInstance();
}
public static Predicate eq(CriteriaBuilder cb,Path<?> expression, Object object){
return cb.equal(expression, object);
}
public static Predicate ne(CriteriaBuilder cb,Path<?> expression, Object object){
return cb.notEqual(expression, object);
}
public static Predicate gt(CriteriaBuilder cb,Path<Number> expression, Object object){
try {
return cb.gt(expression, nf.parse(object.toString()));
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
public static Predicate ge(CriteriaBuilder cb,Path<Number> expression, Object object){
try {
return cb.ge(expression, nf.parse(object.toString()));
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
public static Predicate lt(CriteriaBuilder cb,Path<Number> expression, Object object){
try {
return cb.lt(expression, nf.parse(object.toString()));
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
public static Predicate le(CriteriaBuilder cb,Path<Number> expression, Object object){
try {
return cb.le(expression, nf.parse(object.toString()));
} catch (ParseException e) {
e.printStackTrace();
return null;
}
}
public static Predicate prefixLike(CriteriaBuilder cb,Path<String> expression, Object object){
return cb.like(expression, object.toString() + "%");
}
public static Predicate prefixNotLike(CriteriaBuilder cb,Path<String> expression, Object object){
return cb.notLike(expression, object.toString() + "%");
}
public static Predicate suffixLike(CriteriaBuilder cb,Path<String> expression, Object object){
return cb.like(expression, "%" + object.toString());
}
public static Predicate suffixNotLike(CriteriaBuilder cb,Path<String> expression, Object object){
return cb.notLike(expression, "%" + object.toString());
}
public static Predicate like(CriteriaBuilder cb,Path<String> expression, Object object){
return cb.like(expression, "%" + object.toString() + "%");
}
public static Predicate notLike(CriteriaBuilder cb,Path<String> expression, Object object){
return cb.notLike(expression, "%" + object.toString() + "%");
}
public static Predicate isNull(CriteriaBuilder cb,Path<String> expression, Object object){
return cb.isNull(expression);
}
public static Predicate isNotNull(CriteriaBuilder cb,Path<String> expression, Object object){
return cb.isNotNull(expression);
}
public static Predicate isf(CriteriaBuilder cb,Path<Boolean> expression, Object object){
return cb.isFalse(expression);
}
public static Predicate ist(CriteriaBuilder cb,Path<Boolean> expression, Object object){
return cb.isTrue(expression);
}
public static Predicate date(CriteriaBuilder cb,Path<?> expression, Object object){
Date time = null;
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
time = sdf.parse(object.toString());
} catch (Exception e) {
e.printStackTrace();
}
return cb.equal(expression, time);
}
}