gpt4 book ai didi

mysql - Spring Data JPA 存储库流 MySql/MsSql NPE

转载 作者:行者123 更新时间:2023-11-29 19:56:52 26 4
gpt4 key购买 nike

我正在使用 SpringData JPARepository 从 MySql 和 MsSql 数据库读取数据。当我尝试将查询结果作为列表获取时。它工作得很好

 List<Employee> findByEmployeeId(String employeeId);

但是当我尝试获取流时

 Stream<Employee> findByEmployeeId(String employeeId);

我得到了 NPE。但这是间歇性发生的。

java.lang.NullPointerException: null
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1044) ~[mysql-connector-java-5.1.38.jar!/:5.1.38]
at com.mysql.jdbc.ResultSetImpl.getInt(ResultSetImpl.java:2580) ~[mysql-connector-java-5.1.38.jar!/:5.1.38]
at com.zaxxer.hikari.pool.HikariProxyResultSet.getInt(HikariProxyResultSet.java) ~[HikariCP-2.4.3.jar!/:na]
at org.hibernate.type.descriptor.sql.IntegerTypeDescriptor$2.doExtract(IntegerTypeDescriptor.java:73) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:267) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:263) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:338) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2969) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1696) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1628) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.loader.Loader.getRow(Loader.java:1515) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:726) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:696) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.loader.Loader.loadSingleRow(Loader.java:392) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.internal.ScrollableResultsImpl.prepareCurrentRow(ScrollableResultsImpl.java:237) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.hibernate.internal.ScrollableResultsImpl.next(ScrollableResultsImpl.java:121) ~[hibernate-core-4.3.11.Final.jar!/:4.3.11.Final]
at org.springframework.data.jpa.provider.PersistenceProvider$HibernateScrollableResultsIterator.hasNext(PersistenceProvider.java:396) ~[spring-data-jpa-1.9.2.RELEASE.jar!/:na]
at java.util.Iterator.forEachRemaining(Iterator.java:115) ~[na:1.8.0_66]
at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801) ~[na:1.8.0_66]
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) ~[na:1.8.0_66]
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) ~[na:1.8.0_66]
at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) ~[na:1.8.0_66]
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[na:1.8.0_66]
at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) ~[na:1.8.0_66]

但是使用 MongoRepository,即使结果巨大,我也从来没有遇到过问题。

如果我在这里遗漏了什么,请告诉我。

谢谢

最佳答案

您是否尝试过在存储库方法上的查询中添加 @Query 注释?我自己见过并使用过的所有以 Stream 作为返回类型的查询都使用了它的注释。

像这样的例子:

@Query(value = "select e from Employee e where e.employeeId = :employeeId)
Stream<Employee> findByEmployeeId(String employeeId)

关于mysql - Spring Data JPA 存储库流 MySql/MsSql NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40655594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com