作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
你好,我有一个大型的 oracle hibernate web 应用程序,它似乎给出了这个错误
ORA-01795:列表中表达式的最大数量为 1000
我需要一个 java 代码作为 hibernate 用户定义的组件进行测试,以尽可能简单地添加到我在屏幕上搜索的 java 类,有人可以拥有这样经过测试的组件吗?
最佳答案
我尝试了下面来自 link 的代码它似乎工作得很好我会粘贴代码以防将来链接断开。
保持简单保持微笑:)
/**
* 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;
}
}
关于java - Hibernate Criterion IN Clause 1000 分手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14869054/
你好,我有一个大型的 oracle hibernate web 应用程序,它似乎给出了这个错误 ORA-01795:列表中表达式的最大数量为 1000 我需要一个 java 代码作为 hibernat
我正在尝试为 VM 存储分区我的 Dell R710。详情: 新安装的 XenServer 7.2。接受默认值。 5 个 2TB 驱动器,Raid 5。单个虚拟磁盘。总存储空间:8TB 我想要做的就是
我是一名优秀的程序员,十分优秀!