Foros del Web » Programación para mayores de 30 ;) » Java »

Problema con setter en entidades

Estas en el tema de Problema con setter en entidades en el foro de Java en Foros del Web. Hola amigos, Tengo un problema que no se a que asociarlo, he trabajado poco tiempo en java pero he avanzado rapido creo yo. El asunto ...
  #1 (permalink)  
Antiguo 10/07/2011, 06:46
 
Fecha de Ingreso: junio-2011
Mensajes: 7
Antigüedad: 12 años, 10 meses
Puntos: 0
Problema con setter en entidades

Hola amigos,

Tengo un problema que no se a que asociarlo, he trabajado poco tiempo en java pero he avanzado rapido creo yo.

El asunto es el siguiente, estoy haciendo una consulta a MySQL el cual no tengo problema, el problema ocurre cuando obtengo los datos y los quiero pasar a un entidad para luego enviarlos para otro lado.

Esta entidad la cual le agrego los datos del resultset de la consulta se llama Noticia, y Noticia a su vez tiene otra entidad que es se llama Imagen que obviamente tiene mas atributos...lo hice porque la consulta trae datos de 2 tablas relacionadas.

Nunca habia probado meter una entidad dentro de otra...asi que lo que hago no se si esta correcta...a todo esto se me olvido mencionar que trabajo con jsp...y al compilar me tira un error general pero si yo dejo comentadas las 2 lineas del ingreso a la entidad imagen no me arroja el problema siendo que nunca me tira ningun error de compilación ni nada.

Cualquier ayudita se agradece muchisimo!

Código:
        public ArrayList<Noticia> vernoticias(){
        Statement select = con.crearSentencia();
        ArrayList<Noticia> noti = new ArrayList<Noticia>();
        try
        {
        ResultSet rs = select.executeQuery("select noticia.titulo_noticia, noticia.contenido_noticia, noticia.id_noticia, imagen.id_imagen, imagen.url_imagen from noticia, imagen where noticia.id_noticia = imagen.id_noticia");
        while(rs.next())
        {
            Noticia p = new Noticia();
            p.setTituloNoticia(rs.getString("titulo_noticia"));
            p.setContenidoNoticia(rs.getString("contenido_noticia"));
            p.setIdNoticia(rs.getInt("id_noticia"));
            p.getImagen().setIdImagen(rs.getInt("id_imagen"));
            p.getImagen().setUrlImagen(rs.getString("url_imagen"));
            noti.add(p);
        }
        return noti;
        }
        catch(SQLException ex)
        {
            return null;
        }
     }

Última edición por Spassky; 10/07/2011 a las 06:53
  #2 (permalink)  
Antiguo 10/07/2011, 07:45
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con setter en entidades

¿Cual es el error que te sale?
Tambien muestra el codigo de Noticia, solo para asegurarnos de que inicializas Imagen
  #3 (permalink)  
Antiguo 10/07/2011, 16:38
 
Fecha de Ingreso: junio-2011
Mensajes: 7
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problema con setter en entidades

Te dejo mis constructores

Noticia
Código:
public class Noticia{


    private Integer idNoticia;
    private String tituloNoticia;
    private String contenidoNoticia;
    private String fechaModifNoti;
    private int idUsuario;
    private Imagen imagen;

    public Noticia() {
    }

    public Noticia(Integer idNoticia) {
        this.idNoticia = idNoticia;
    }

    public Noticia(Integer idNoticia, String tituloNoticia, String contenidoNoticia, String fechaModifNoti, int idUsuario, Imagen imagen) {
        this.idNoticia = idNoticia;
        this.tituloNoticia = tituloNoticia;
        this.contenidoNoticia = contenidoNoticia;
        this.fechaModifNoti = fechaModifNoti;
        this.idUsuario = idUsuario;
        this.imagen = imagen;

    }

    public Integer getIdNoticia() {
        return idNoticia;
    }

    public void setIdNoticia(Integer idNoticia) {
        this.idNoticia = idNoticia;
    }

    public String getTituloNoticia() {
        return tituloNoticia;
    }

    public void setTituloNoticia(String tituloNoticia) {
        this.tituloNoticia = tituloNoticia;
    }

    public String getContenidoNoticia() {
        return contenidoNoticia;
    }

    public void setContenidoNoticia(String contenidoNoticia) {
        this.contenidoNoticia = contenidoNoticia;
    }

    public String getFechaModifNoti() {
        return fechaModifNoti;
    }

    public void setFechaModifNoti(String fechaModifNoti) {
        this.fechaModifNoti = fechaModifNoti;
    }

    public int getIdUsuario() {
        return idUsuario;
    }

    public void setIdUsuario(int idUsuario) {
        this.idUsuario = idUsuario;
    }

    public Imagen getImagen() {
        return imagen;
    }

    public void setImagen(Imagen imagen) {
        this.imagen = imagen;
    }

}
Imagen
Código:
public class Imagen {

    private Integer idImagen;
    private String urlImagen;
    private int idNoticia;

    public Imagen() {
    }

    public Imagen(Integer idImagen) {
        this.idImagen = idImagen;
    }

    public Imagen(Integer idImagen, String urlImagen, int idNoticia) {
        this.idImagen = idImagen;
        this.urlImagen = urlImagen;
        this.idNoticia = idNoticia;
    }

    public Integer getIdImagen() {
        return idImagen;
    }

    public void setIdImagen(Integer idImagen) {
        this.idImagen = idImagen;
    }

    public String getUrlImagen() {
        return urlImagen;
    }

    public void setUrlImagen(String urlImagen) {
        this.urlImagen = urlImagen;
    }

    public int getIdNoticia() {
        return idNoticia;
    }

    public void setIdNoticia(int idNoticia) {
        this.idNoticia = idNoticia;
    }

}
Error
Código:
type Exception report

message

descriptionThe server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: java.lang.NullPointerException

root cause

java.lang.NullPointerException

note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.0.1 logs.
Debo decir que este error me sale casi siempre cuando declaro algo mal o no es valido, pero por mas que le busco no se donde esta el error, mas encima como dije no me acusa ningun error antes de ejecutarlo.

Hice la prueba de crear todos los atributos de imagen a noticia y me resulta pero aun no me resulta de meter un constructor dentro de otro...:S

Gracias!
  #4 (permalink)  
Antiguo 10/07/2011, 18:23
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Problema con setter en entidades

El error viene de que en la entidad Noticia nunca inicializas una entidad de tipo Imagen.
Por eso, al querer acceder a esta y tratar de usar uno de sus métodos, te da un NullPointerException.

Puedes:
1. Inicializar la variable imagen en la entidad Noticia o
2. Inicializarla en el código que crea el objeto cuando lees los datos de la BBDD.

Para que no vuelva a ocurrir, hazlo en la entidad Noticia.

private Imagen imagen = new Imagen();

Nota: Talvez te interese leer un poco sobre algun framework como Hibernate o iBATIS, te aliviaria mucho el trabajo de estar mapeando tu mismo la base de datos a los objetos.
  #5 (permalink)  
Antiguo 10/07/2011, 21:36
 
Fecha de Ingreso: junio-2011
Mensajes: 7
Antigüedad: 12 años, 10 meses
Puntos: 0
Respuesta: Problema con setter en entidades

Muchas gracias por responder tan rapido, voy a probar y leer sobre lo que me dices, habia escuchado comentarios de como explorar las entidades de la bd pero no sabia por que nombre buscarla

deja probar y confirmo lo que me dices

GRACIAS!

Slds.-

Etiquetas: mysql, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:51.