嗨,我有这个大型的Oracle休眠Web应用程序,它似乎给出了此错误
ORA-01795: maximum number of expressions in a list is 1000
并且我需要由某人测试的Java代码作为休眠用户定义的组件,以便尽可能容易地将其添加到屏幕上的搜索Java类中,有人可以拥有经过测试的组件吗?
我尝试从链接下面的代码,它似乎工作得很好,万一将来链接被打破,我会粘贴代码。
保持简单,保持微笑:)
/**
* An utility method to build the Criterion Query IN clause if the number of parameter
* values passed has a size more than 1000. Oracle does not allow more than
* 1000 parameter values in a IN clause. Doing so a {@link SQLException} is
* thrown with error code, 'ORA-01795: maximum number of expressions in a list is 1000'.
* @param propertyName
* @param values
* @return
*/
import java.util.List;
import org.hibernate.criterion.Restrictions;
/**
*
* @author 2796
*/
public class SplitHibernateIn {
private static int PARAMETER_LIMIT = 999;
public static org.hibernate.criterion.Criterion buildInCriterion(String propertyName, List values) {
org.hibernate.criterion.Criterion criterion = null;
int listSize = values.size();
for (int i = 0; i < listSize; i += PARAMETER_LIMIT) {
List subList;
if (listSize > i + PARAMETER_LIMIT) {
subList = values.subList(i, (i + PARAMETER_LIMIT));
} else {
subList = values.subList(i, listSize);
}
if (criterion != null) {
criterion = Restrictions.or(criterion, Restrictions.in(propertyName, subList));
} else {
criterion = Restrictions.in(propertyName, subList);
}
}
return criterion;
}
}
问题内容: 嗨,我有这个大型的OraclehibernateWeb应用程序,它似乎给出了此错误 并且我需要由某人测试的Java代码作为hibernate用户定义的组件,以便尽可能容易地将其添加到屏幕上的搜索Java类中,有人可以拥有经过测试的组件? 问题答案: 我尝试从链接下面的代码,它似乎工作得很好,万一将来链接被打破,我会粘贴代码。 保持简单保持微笑:)
问题内容: 在甲骨文我有格式的日期 2011年4月17日19:20:23.707000000 我想检索2011年4月17日的所有订单。 但这给我带来了空洞的结果: 问题答案: 为什么使用)? 您应该使用。 请注意,您也可以使用,,,在日期对象作为比较操作。运算符不适用于这种情况,因为当您要根据列的部分内容匹配结果时很有用。请参阅http://www.sql- tutorial.net/SQL-LI
问题内容: 假设我有一个带有数量字段和价格字段的持久类Item。有没有办法建立一个计算数量*价格之和的标准? 问题答案: 我认为您也可以使用SQL投影。应该是这样的: 奥里
问题内容: 有一个“ Item”类,它有一些相关的类,称为Vehicle,Vmodel,Category,ItemName,Brand,SizeModel。每个类都有属性ID和名称(例如Vehicle类,“ vid”和“ vname”)。 Item类具有itemcode。 另外,我还需要从给定的示例Item对象(称为“ ”)中获取Item对象,该对象等于我的示例item对象的属性以及与该对象关联的
问题内容: 我正在尝试做这样的事情,但使用代替: 用户是与联接表UserDomain 有关系的实体。这里的重点只是找到链接到具有id =“ XXX”的用户。 似乎应该很简单…但是到目前为止我还没有运气找到任何有用的文档。 问题答案: 我终于找到了。事实证明,这毕竟并不难……一旦您知道! 是的,有人盯着我看Javadoc:http : //www.dil.univ- mrs.fr/~massat/d
问题内容: 如何将sql查询写入休眠条件? 问题答案: 认为我找到了答案。您必须使用Projection.sqlProjection()而不是Projections.sum()。例: