问题标签 [scrollableresults]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
739 浏览

jpa - Eclipselink ScrollableCursor 在第二次 next() 调用中失败

我正在尝试使用 ScrollableCursor 将系统的所有用户加载到内存中。我有这样的代码:

查询是:SELECT s FROM UserEntity u order by u.userId

结果表的大小为 100,当 scrollableCursor.next(nextSize); 调用,我得到以下异常:

在调用 next(10) 时,第一行正常加载,异常发生在第二行。我不知道为什么。谁能说我如何避免这个错误?

0 投票
1 回答
265 浏览

java - Hibernate - 最佳分页方法

我正在一个网站上工作,我必须垂直显示新闻(一个接一个)。假设我有 100 条新闻,我想通过滚动显示 10 条 10 条。我不想删除我显示的前 10 条新闻,只是继续滚动并添加更多新闻。我一直在寻找正确的分页方法,但我不知道ScrollableResults是否是这种情况下的最佳选择,或者我应该选择另一种选择。

这不是您向后移动广告的常见网格,它只是向下滚动以查看更多新闻。

顺便说一句,我正在为客户端使用 extjs。

谢谢,

PS:我一直在看这个网站

0 投票
0 回答
127 浏览

mysql - 组合两个结果集时出现 ScrollableResults 分页问题

我必须使用 HQL 从两个不相关的表中获取值。

我必须结合两个查询的结果集,使其在分页中工作

我使用了 UNION ALL ,但没有成功

我使用 Scrollable results for pagination ,所以我尝试单独运行查询。

我不知道如何通过结合使用 ScrollableResults 的两个结果来进行分页工作

0 投票
0 回答
41 浏览

java - 如何使用 setFetchSize() 在 Hibernate 中仅使用一个“选择”而不使用 scroll() 所有行来获取搜索的总行数?可能吗?

首先,我使用 Java 和 Hibernate(使用 setFech() 方法和 ScrollableResults 类)。

其次,我正在使用一个具有数千万行和一百多列的表。这张桌子与其他两张桌子相连。所以一个简单的“select count(*)”需要 1 分钟。

我正在使用下面的代码为我带来选择的结果,这将返回数百万行和所有列。所以我必须使用 fetch。

在第一次选择之后,我需要知道搜索的总行数,但我不想再做一次选择(这需要 1 分钟),我不能调用所有 scroll.next()。有可能这样做吗?

0 投票
2 回答
7910 浏览

java - 使用 Hibernate 5.2 以流形式查询结果

从 Hibernate 5.2 开始,如果我们想要获取大量数据,我们可以使用该stream()方法代替。scroll()

但是,当使用scroll()with时,ScrollableResults我们可以挂钩到检索过程并通过在处理对象后将对象从持久上下文中逐出和/或不时清除整个会话来释放内存。

我的问题:

  1. 现在,如果我们使用该stream()方法,幕后会发生什么?
  2. 是否可以从持久上下文中驱逐对象?
  3. 会话是否定期清除?
  4. 如何实现最佳内存消耗?
  5. 是否可以使用例如 StatelessSession?
  6. 此外,如果我们hibernate.jdbc.fetch_size在 JPA 属性中设置了某个数字(例如 1000),那么这如何与可滚动结果很好地结合起来呢?
0 投票
0 回答
216 浏览

java - ScrollableResults 集中的重复实体

我正在通过可滚动的结果集从带有休眠状态的大表(约 100 万个条目)中获取数据。我现在面临的问题很奇怪,现在我似乎找不到答案。

我所做的是用一个非常简单的语句加载数据,滚动结果集并将 XML 字符串写入一个 zip 文件。我正在批处理查询,因为当“WHERE IN - 子句”中的参数数量达到一定数量时,Hibernate 会出现问题。将其设置为常规 ParameterList 更糟糕。这就是为什么我按照以下方式进行操作。

现在的问题:我正在从 SQL (business key + type) 中定义的唯一键生成文件名。在此过程中,我收到一个 zipException,它说文件名已经存在。这应该是不可能的,因为唯一键可以防止重复条目。是否有可能我以某种方式错误地使用了 scrollableresults ?批量获取数据的方法是否会导致此问题?我真的在这里一无所知......

现在是获取数据的代码。

0 投票
1 回答
283 浏览

hql - 如何检查可滚动界面是否为空?

hql查询返回,如何检查ScrollableResults对象是否为空?

scrollable.first?

0 投票
1 回答
115 浏览

scrollableresults - 需要在 Hibernate 中使用 ScrollableResults 获取列的类型

我正在使用 Hibernate 生成报告。

下面是示例代码: Query query = session.createSQLQuery("select * from A, B where A.id= B.Val"); ScrollableResults 结果 = query.scroll(ScrollMode.FORWARD_ONLY);

在生成 Excel 报告之前,我想知道所有列名和列类型。

如何使用 Hibernate 可滚动结果来实现这一点?

谁能帮我解决这个问题。

0 投票
1 回答
6045 浏览

java - 原因:org.hibernate.QueryException:无法解析 CAST 的请求类型:INT

原因:org.hibernate.QueryException:无法解析 CAST 的请求类型:INT [ SELECT SUBSTRING(referenceComptable, 8, 14) AS seqNum, SUBSTRING(referenceComptable, 4,7) AS yearCegid, SUBSTRING(referenceComptable, 1,3) AS 期刊 FROM com.dso.model.comptabilite.cegid.EtapeJudiciaireLnkFactureActesHonoraires WHERE dateCegidGenerated BETWEEN :date AND :dateYearIntervalDate ORDER BY CAST(seqNum AS INT), CAST(yearCegid AS INT), CAST(journal AS INT) ASC]

HQL 查询:public Sc​​rollableResults retrieveSequenceNumberForCegidGenerated(){

当我尝试将其转换为 INT 时,它也不起作用。可以做些什么来将它从字符串转换为整数?

堆栈跟踪

原因:org.hibernate.QueryException:无法解析 CAST 的请求类型:INTEGER [ SELECT SUBSTRING(referenceComptable, 8, 7) AS seqNum, SUBSTRING(referenceComptable, 4,4) AS yearCegid, SUBSTRING(referenceComptable, 1,3) AS 期刊来自 com.dso.model.comptabilite.cegid.EtapeJudiciaireLnkFactureActesHonoraires WHERE dateCegidGenerated BETWEEN :date AND :dateYearIntervalDate ORDER BY CAST(SUBSTRING(referenceComptable , 8, 14) AS INTEGER), CAST(SUBSTRING(referenceComptable, 4,7) AS INTEGER ), 日志 ASC ] at org.hibernate.QueryException.generateQueryException(QueryException.java:120) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] at org.hibernate.QueryException.wrapWithQueryString(QueryException .java:103) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] 在 org.hibernate.hql.internal.ast.QueryTranslatorImpl。doCompile(QueryTranslatorImpl.java:218) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:142) ~ [hibernate-core-5.0.2.Final.jar:5.0.2.Final] 在 org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:115) ~[hibernate-core-5.0.2.Final .jar:5.0.2.Final] 在 org.hibernate.engine.query.spi.HQLQueryPlan.(HQLQueryPlan.java:76) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] 在org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:150) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] at org.hibernate.internal.AbstractSessionImpl.getHQLQueryPlan (AbstractSessionImpl.java:298) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] at org.hibernate.internal.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:236) ~[hibernate-core-5.0.2.Final.jar:5.0.2.Final] at org.hibernate.internal.SessionImpl.createQuery(SessionImpl.java:1825) ~[hibernate-core-5.0.2 .Final.jar:5.0.2.Final] 在 com.dso.dao.comptabilite.cegid.impl.ReferenceComptableSequenceDAOImpl.retrieveSequenceNumberForCegidGenerated

0 投票
0 回答
636 浏览

java - 清除 maxRows/queryTimeout & ResultSet 未打开,不允许操作“下一个”。使用 ScrollableResults 验证自动提交是否为 OFF 异常

我需要遍历 ScrollableResults,这实际上是在 cron 上执行的,它读取大约 100000 条记录的表(Informix DB)的信息并将一些信息保存在另一个 DB(Oracle 11g)的另一个表上,但过去 30 分钟它抛出两个例外;首先是“清除 maxRows/queryTimeout java.sql.SQLException:'Statement' 已经关闭的异常”,然后是“SQL 错误:-79878,SQLState:IX000 ResultSet 未打开,不允许操作'next'。验证自动提交已关闭”。

我希望它能够毫无问题地读取和处理所有行