在java中解析(空)sql结果集值
我在下面写本机查询:在java中解析(空)sql结果集值,java,hibernate,jpa,Java,Hibernate,Jpa,我在下面写本机查询: ( select null as id, name as name from tableA ) UNION ALL ( select id as id, name as name from tableB ) 它以以下形式返回输出: +--------+--------+ | id | name | +--------+-------
(
select
null as id,
name as name
from
tableA
)
UNION ALL
(
select
id as id,
name as name
from
tableB
)
它以以下形式返回输出:
+--------+--------+
| id | name |
+--------+--------+
| (null) | Andy |
| (null) | Jim |
| 1 | Pam |
| 2 | Dwight |
+--------+--------+
我将在自定义DTO中传递此本机查询的结果:
public class MyDto {
Long getId();
String getName();
}
从我的服务类调用本机查询,如下所示:
List<MyDto> reuslts = repo.getMyResults();
List reusults=repo.getMyResults();
但当我尝试循环结果时,它抛出空指针异常
results.foreach(rs -> {
rs.getId(); // <-----Null pointer exception;
rs.getName(); // <-----Null pointer exception;
});
results.foreach(rs->{
rs.getId();//所以您得到了2个NPE??或者您注释掉了1行,以知道这两个NPE都在使用NPE?您声明了“reusults”并循环使用了“results”。这可能是一个问题,还是粘贴在这里的代码本身有误?@VishalSharma,这确实是一个误操作。在我的原生查询中,我以tableA_id的形式获取列,这与DTO接口中的预期不同。因此,您得到了2个NPE??或者您注释掉了1行,以知道这两个列都在使用NPE?您已经声明了“Reuselts”和“结果”循环。这可能是一个问题,还是只是粘贴在这里的代码本身的输入错误?@VishalSharma,这确实是一个输入错误。在我的原生查询中,我以tableA_id获取列,这与DTO接口中的预期不同。