我正在尝试接收此查询的结果:
SELECT n.*, r.nombre as nom
FROM noticias n
INNER JOIN actperiodicas r
WHERE (n.idActPer = r.idActPer) and (n.idActPer>0)
UNION
SELECT n.*, s.nombre as nom
FROM noticias n
INNER JOIN actpuntuales s
WHERE (n.idActPunt = s.idActPunt) and (n.idActPunt >0)
UNION
SELECT n.*, '-' as nom
FROM noticias n
WHERE (n.idActPer=0) and (n.idActPunt=0)
ORDER BY fechaPublicacion DESC
LIMIT 10 OFFSET 0;
我正在使用带有此代码的mapper用于mapRow函数(Interface RowMapper):
public Noticia mapRow(ResultSet rs, int rowNum) throws SQLException {
Noticia not = new Noticia();
not.setIdNoticia(rs.getInt("idNoticia"));
not.setFechaPublicacion(rs.getString("fechaPublicacion"));
not.setTitulo(rs.getString("titulo"));
not.setTexto(rs.getString("texto"));
not.setNomImagen(rs.getString("nomImagen"));
not.setIdActPer(rs.getInt("idActPer"));
not.setIdActPunt(rs.getInt("idActPunt"));
not.setNomAct(rs.getString("nom"));
return not;
}
你可能已经注意到了:'nom'列是我从表'actPuntuales'和'actPeriodicas'给'nombre'列的名字,当我的'noticias'时它只是一个' - '字符表行不需要名称(nom)。
我的问题是:当我使用Toad示例执行查询时,nom的值是正确的,但是当我尝试在我的应用程序中接收它时,它总是等于Null