尝试为休眠条件搜索制作方法
Trying to make method for hibernate criteria search
我正在尝试为用户login.In创建休眠条件搜索方法,这种情况下我不明白如何设置
add(Restrictions.eq(propertyName, value));
对于方法。我知道 propertyName
应该是 column name
。但是我怎样才能得到这个,代码中有没有错误。
这是我的 servlet
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
String email=req.getParameter("email");
String password=req.getParameter("password");
String [] arr = {email,password};
creatreCriteria(Account.class);
for (int i = 0; i < arr.length; i++) {
addeqResrictions("colum name", arr.length);
}
} catch (Exception e) {
}
}
这是我的课程 class.
public static Criteria creatreCriteria(Class PC){
getSession().createCriteria(PC);
return criteria;
}
public static SimpleExpression addeqResrictions(String p, Object v){
criteria.add(Restrictions.eq(p, v));
return simpleExpression;
}
}
一个属性名字应该不是一个列名,而是一个属性持久化class的名字(字段名)。所以如果你有一个 class User
和一个字段 login
.
@Entity
class User {
@Column
private String login;
}
您可以使用这个条件
Criteria criteria = getSession().createCriteria(User.class);
criteria.add(Restrictions.eq("login", someLogin);
我认为最好的方法是解析包含值的 Map。您的方法应如下所示。
public static void addeqRestrictions(HashMap<String, Object> r) {
for (Map.Entry<String, Object> entry : r.entrySet()) {
criteria.add(Restrictions.eq(entry.getKey(), entry.getValue()));
}
}
用法,
HashMap<String, Object> map = new HashMap();
map.put("ColName", object1);
map.put("ColName", object2);
map.put("ColName", object3);
addeqRestrictions(map);
我正在尝试为用户login.In创建休眠条件搜索方法,这种情况下我不明白如何设置
add(Restrictions.eq(propertyName, value));
对于方法。我知道 propertyName
应该是 column name
。但是我怎样才能得到这个,代码中有没有错误。
这是我的 servlet
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
try {
String email=req.getParameter("email");
String password=req.getParameter("password");
String [] arr = {email,password};
creatreCriteria(Account.class);
for (int i = 0; i < arr.length; i++) {
addeqResrictions("colum name", arr.length);
}
} catch (Exception e) {
}
}
这是我的课程 class.
public static Criteria creatreCriteria(Class PC){
getSession().createCriteria(PC);
return criteria;
}
public static SimpleExpression addeqResrictions(String p, Object v){
criteria.add(Restrictions.eq(p, v));
return simpleExpression;
}
}
一个属性名字应该不是一个列名,而是一个属性持久化class的名字(字段名)。所以如果你有一个 class User
和一个字段 login
.
@Entity
class User {
@Column
private String login;
}
您可以使用这个条件
Criteria criteria = getSession().createCriteria(User.class);
criteria.add(Restrictions.eq("login", someLogin);
我认为最好的方法是解析包含值的 Map。您的方法应如下所示。
public static void addeqRestrictions(HashMap<String, Object> r) {
for (Map.Entry<String, Object> entry : r.entrySet()) {
criteria.add(Restrictions.eq(entry.getKey(), entry.getValue()));
}
}
用法,
HashMap<String, Object> map = new HashMap();
map.put("ColName", object1);
map.put("ColName", object2);
map.put("ColName", object3);
addeqRestrictions(map);