是否可以使用JPA从javax.persistence.Query.getResultList()传输结果?

时间:2010-02-23 20:46:33

标签: hibernate jpa scrollableresults

我是JPA的新手,我想知道是否可以从结果集中传输数据,我的意思是我不想等待执行查询以开始处理第一个结果,例如如果是批次。

是否有可能使用JPA API或任何社区采用的解决方法?最终使用JPA实现的功能?

4 个答案:

答案 0 :(得分:1)

您正在使用@ javax.persistence.PostLoad注释可行选项吗?这样,您可以将操作挂钩到从数据存储创建给定对象的时刻。我不确定这是否正是您所寻找的。

答案 1 :(得分:1)

由于显而易见的原因,“master”选择必须在结果集上完成任何操作之前完成。我不确定你在这里想要实现什么......也许你需要让一些字段变得懒惰以便更快地获得第一个结果并在处理它们时获取细节?

答案 2 :(得分:0)

您可以在JPA上使用实际流:

public interface UserRepository extends JpaRepository<User, Integer> {
    // ...
    Stream<User> findAllByName(String name);
    // ...
}

您可以在this nice article中找到更多示例。

答案 3 :(得分:0)

现在function IsJsonString(str) { try { JSON.parse(str); } catch (e) { return false; } return true; } 现在拥有javax.persistence.TypedQuery方法来流数据,但是默认实现仅将getResultStream()包装到流中(因此,无论如何它将所有数据加载到内存中)。但是,Hibernate通过实际的流技术来覆盖这种行为。