我有一个具有相同值但其他列不同的列。我想写这个条件的搜索。我该怎么做呢 ?我正在获得重复的标准例外。
if(!StringUtils.isEmpty(src)){
criteria.createCriteria("params").add(Restrictions.eq("tagName",
OptionalParams.TagName.SOURCE)).add(Restrictions.ilike("name", "Version")).add(Restrictions.ilike("value", src,MatchMode.START));
}
if(!StringUtils.isEmpty(tgt)){
criteria.createCriteria("params").add(Restrictions.eq("tagName", OptionalParams.TagName.TARGET))
.add(Restrictions.ilike("name", "Version")).add(Restrictions.ilike("value", tgt,MatchMode.START));
}
57273 Version 0 1.2.0 9dbb
57275 Version 1 1.2.3 9dbb
感谢任何帮助。
答案 0 :(得分:1)
这可能会对你有所帮助。
Criteria criteria = session.createCriteria("params");
if(!StringUtils.isEmpty(src)){
criteria.add(Restrictions.eq("tagName",
OptionalParams.TagName.SOURCE)).add(Restrictions.ilike("name", "Version")).add(Restrictions.ilike("value", src,MatchMode.START));
}
if(!StringUtils.isEmpty(tgt)){
criteria.add(Restrictions.eq("tagName", OptionalParams.TagName.TARGET))
.add(Restrictions.ilike("name", "Version")).add(Restrictions.ilike("value", tgt,MatchMode.START));
}
您获得了异常,因为您在同一对象的同一事务中编写了两次条件。此外,createCriteria(*.class)
应该将参数作为类。
有关详细信息,请查看http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/querycriteria.html