Uji*_*Ukr 2 java spring jpa jpql spring-boot
我使用JPA这样的数据库查询:
@Query("SELECT " +
"new Report(" +
"sum (r.fraction1)," +
"sum (r.fraction2)) from Report r")
Report calculateTotalReports();
Run Code Online (Sandbox Code Playgroud)
当数据库已满时,它可以正常工作,但是当数据库为空时,应用程序就会崩溃。我如何检查表何时包含行然后选择总和?我尝试使用CASE WHEN ... THEN,但JPA没有提供它。
崩溃日志:
QueryException:无法从元组实例化类 [com.statistic.server.entity.Report],其根本原因
java.lang.IllegalArgumentException:在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)〜[na:1.8.0_201]处为null,在sun.reflect.NativeConstructorAccessorImpl.newInstance(未知来源)〜[na:1.8.0_201]处。 Reflect.DelegatingConstructorAccessorImpl.newInstance(来源未知)~
小智 5
我想你可以COALESCE在这种情况下使用,那么如果 r.fraction1 为空,它将返回 0。
@Query("SELECT " +
"new Report(" +
"COALESCE(sum(r.fraction1),0)," +
"COALESCE(sum(r.fraction2),0)) from Report r")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3270 次 |
| 最近记录: |