我有一段 java 代码硬编码一个看起来像这样的休眠析取查询
session = HibernateUtils.beginTransaction("outpatient");
Criteria criteria = session.createCriteria(AugmentToken.class);
session.beginTransaction();
if (type == Constants.ICD9CPT) {
criteria.add(Restrictions.disjunction()
.add(Restrictions.eq("codeType", "d"))
.add(Restrictions.eq("codeType", "p"))
.add(Restrictions.eq("codeType", "c")));
} else if (type == Constants.EM) {
criteria.add(Restrictions.disjunction()
.add(Restrictions.eq("codeType", "eros"))
.add(Restrictions.eq("codeType", "ehpi"))
.add(Restrictions.eq("codeType", "epe")));
}
但这不是很优雅的代码。我想做的是将一组代码类型传递给一个方法,并动态构造分词条件。我查看的每个网站都提供了类似于上面的析取查询示例,但这对我不起作用,因为我不想硬编码标准的限制构造,因为代码类型的数量可能会有所不同。
我该怎么做呢?
谢谢,
艾略特