我正在尝试使用hibernate条件搜索用户登录的方法。在这种情况下我无法理解如何设置
propertyName
用于该方法。我知道column name
应该是@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) {
}
}
。但是我怎么能得到这个并且代码中有任何错误。
谢谢高级!
这是我的servlet
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;
}
}
这是我的会话课。
答案 0 :(得分:1)
属性名称不应是列名,而应是持久化类的属性名(字段名)。因此,如果您的班级User
包含字段login
。
@Entity
class User {
@Column
private String login;
}
您可以使用此条件
Criteria criteria = getSession().createCriteria(User.class);
criteria.add(Restrictions.eq("login", someLogin);
答案 1 :(得分:1)
我认为最好的方法是解析包含值的Map。你的方法应该是这样的。
HashMap<String, Object> map = new HashMap();
map.put("ColName", object1);
map.put("ColName", object2);
map.put("ColName", object3);
addeqRestrictions(map);
用法,
{{1}}