0

我有一列具有相同的值,但其他列不同。我想写搜索这个条件。我该怎么做呢 ?我收到重复标准异常。

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

任何帮助表示赞赏。

4

1 回答 1

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

于 2013-07-03T13:27:39.237 回答