2017-02-23 76 views
0

我有這個錯誤,關於我在春天做的web應用程序mvc java.lang.NumberFormatException,它不是一個整數,而是一個字符串 This是我的模型Jsp java.lang.NumberFormatException:對於輸入字符串:「atividade」

@Entity 
@Table(name = "atividades", schema = "spring") 
public class Atividades implements Serializable { 
    private static final long serialVersionUID = 1L; 
    private int idAtividades; 
    private int idUtilizador; 
    private Integer idCargo; 
    private String atividade; 
    private String local; 
    private String descricao; 
    private String objetivos; 
    private String periodo; 
    private String previsaoMes; 
    private Date dataPrevista; 
    private Time hora; 
    private String orcamento; 
    private String destinatarios; 
    private String observacoes; 
    private int idAno; 
    private Timestamp registado; 
    private byte plano; 
    private String realizado; 
    private String motivo; 
    private String file; 
    private AppUser appUserByIdUtilizador; 
    private Cargos cargosByIdCargo; 
    private AnoEscolar anoEscolarByIdAno; 
    private Collection<AvaliacaoAtividades> avaliacaoAtividadesByIdAtividades; 

    public Atividades() { 
    } 

    @Id 
    @Column(name = "id_atividades") 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    public int getIdAtividades() { 
     return idAtividades; 
    } 

    public void setIdAtividades(int idAtividades) { 
     this.idAtividades = idAtividades; 
    } 

    @Basic 
    @Column(name = "id_utilizador") 
    public int getIdUtilizador() { 
     return idUtilizador; 
    } 

    public void setIdUtilizador(int idUtilizador) { 
     this.idUtilizador = idUtilizador; 
    } 

    @Basic 
    @Column(name = "id_cargo") 
    public Integer getIdCargo() { 
     return idCargo; 
    } 

    public void setIdCargo(Integer idCargo) { 
     this.idCargo = idCargo; 
    } 

    @Basic 
    @Column(name = "atividade") 
    public String getAtividade() { 
     return atividade; 
    } 

    public void setAtividade(String atividade) { 
     this.atividade = atividade; 
    } 

    @Basic 
    @Column(name = "local") 
    public String getLocal() { 
     return local; 
    } 

    public void setLocal(String local) { 
     this.local = local; 
    } 

    @Basic 
    @Column(name = "descricao") 
    public String getDescricao() { 
     return descricao; 
    } 

    public void setDescricao(String descricao) { 
     this.descricao = descricao; 
    } 

    @Basic 
    @Column(name = "objetivos") 
    public String getObjetivos() { 
     return objetivos; 
    } 

    public void setObjetivos(String objetivos) { 
     this.objetivos = objetivos; 
    } 

    @Basic 
    @Column(name = "periodo") 
    public String getPeriodo() { 
     return periodo; 
    } 

    public void setPeriodo(String periodo) { 
     this.periodo = periodo; 
    } 

    @Basic 
    @Column(name = "previsao_mes") 
    public String getPrevisaoMes() { 
     return previsaoMes; 
    } 

    public void setPrevisaoMes(String previsaoMes) { 
     this.previsaoMes = previsaoMes; 
    } 

    @Basic 
    @Column(name = "data_prevista") 
    public Date getDataPrevista() { 
     return dataPrevista; 
    } 

    public void setDataPrevista(Date dataPrevista) { 
     this.dataPrevista = dataPrevista; 
    } 

    @Basic 
    @Column(name = "hora") 
    public Time getHora() { 
     return hora; 
    } 

    public void setHora(Time hora) { 
     this.hora = hora; 
    } 

    @Basic 
    @Column(name = "orcamento") 
    public String getOrcamento() { 
     return orcamento; 
    } 

    public void setOrcamento(String orcamento) { 
     this.orcamento = orcamento; 
    } 

    @Basic 
    @Column(name = "destinatarios") 
    public String getDestinatarios() { 
     return destinatarios; 
    } 

    public void setDestinatarios(String destinatarios) { 
     this.destinatarios = destinatarios; 
    } 

    @Basic 
    @Column(name = "observacoes") 
    public String getObservacoes() { 
     return observacoes; 
    } 

    public void setObservacoes(String observacoes) { 
     this.observacoes = observacoes; 
    } 

    @Basic 
    @Column(name = "id_ano") 
    public int getIdAno() { 
     return idAno; 
    } 

    public void setIdAno(int idAno) { 
     this.idAno = idAno; 
    } 

    @Basic 
    @Column(name = "registado") 
    public Timestamp getRegistado() { 
     return registado; 
    } 

    public void setRegistado(Timestamp registado) { 
     this.registado = registado; 
    } 

    @Basic 
    @Column(name = "plano") 
    public byte getPlano() { 
     return plano; 
    } 

    public void setPlano(byte plano) { 
     this.plano = plano; 
    } 

    @Basic 
    @Column(name = "realizado") 
    public String getRealizado() { 
     return realizado; 
    } 

    public void setRealizado(String realizado) { 
     this.realizado = realizado; 
    } 

    @Basic 
    @Column(name = "motivo") 
    public String getMotivo() { 
     return motivo; 
    } 

    public void setMotivo(String motivo) { 
     this.motivo = motivo; 
    } 

    @Basic 
    @Column(name = "file") 
    public String getFile() { 
     return file; 
    } 

    public void setFile(String file) { 
     this.file = file; 
    } 

    @ManyToOne 
    @JoinColumn(name = "id_utilizador", referencedColumnName = "id", insertable = false, updatable = false, nullable = false) 
    public AppUser getAppUserByIdUtilizador() { 
     return appUserByIdUtilizador; 
    } 

    public void setAppUserByIdUtilizador(AppUser appUserByIdUtilizador) { 
     this.appUserByIdUtilizador = appUserByIdUtilizador; 
    } 

    @ManyToOne 
    @JoinColumn(name = "id_cargo", referencedColumnName = "id_cargo", insertable = false, updatable = false) 
    public Cargos getCargosByIdCargo() { 
     return cargosByIdCargo; 
    } 

    public void setCargosByIdCargo(Cargos cargosByIdCargo) { 
     this.cargosByIdCargo = cargosByIdCargo; 
    } 

    @ManyToOne 
    @JoinColumn(name = "id_ano", referencedColumnName = "id_ano", insertable = false, updatable = false, nullable = false) 
    public AnoEscolar getAnoEscolarByIdAno() { 
     return anoEscolarByIdAno; 
    } 

    public void setAnoEscolarByIdAno(AnoEscolar anoEscolarByIdAno) { 
     this.anoEscolarByIdAno = anoEscolarByIdAno; 
    } 

    @OneToMany(mappedBy = "atividadesByIdAtividades") 
    public Collection<AvaliacaoAtividades> getAvaliacaoAtividadesByIdAtividades() { 
     return avaliacaoAtividadesByIdAtividades; 
    } 

    public void setAvaliacaoAtividadesByIdAtividades(Collection<AvaliacaoAtividades> avaliacaoAtividadesByIdAtividades) { 
     this.avaliacaoAtividadesByIdAtividades = avaliacaoAtividadesByIdAtividades; 
    } 

    @Override 
    public String toString() { 
     return "Atividades{" + 
       "idAtividades=" + idAtividades + 
       ", idUtilizador=" + idUtilizador + 
       ", idCargo=" + idCargo + 
       ", atividade='" + atividade + '\'' + 
       ", local='" + local + '\'' + 
       ", descricao='" + descricao + '\'' + 
       ", objetivos='" + objetivos + '\'' + 
       ", periodo='" + periodo + '\'' + 
       ", previsaoMes='" + previsaoMes + '\'' + 
       ", dataPrevista=" + dataPrevista + 
       ", hora=" + hora + 
       ", orcamento='" + orcamento + '\'' + 
       ", destinatarios='" + destinatarios + '\'' + 
       ", observacoes='" + observacoes + '\'' + 
       ", idAno=" + idAno + 
       ", registado=" + registado + 
       ", plano=" + plano + 
       ", realizado='" + realizado + '\'' + 
       ", motivo='" + motivo + '\'' + 
       ", file='" + file + '\'' + 
       ", appUserByIdUtilizador=" + appUserByIdUtilizador + 
       ", cargosByIdCargo=" + cargosByIdCargo + 
       ", anoEscolarByIdAno=" + anoEscolarByIdAno + 
       ", avaliacaoAtividadesByIdAtividades=" + avaliacaoAtividadesByIdAtividades + 
       '}'; 
    } 
} 

我的道

public interface AtividadesDao { 

    void save(Atividades a); 

    void edit(Atividades a,int id); 

    void deleteById(int id); 

    List <Atividades> listAllAtividades(); 

} 

我DaoImpl

@Override 
public List<Atividades> listAllAtividades() { 
    session.openSession(); 
    return session.getCurrentSession().createSQLQuery("SELECT ATIVIDADE, LOCAL, DATA_PREVISTA, TIME_FORMAT(HORA, '%H:%i') AS HORA FROM ATIVIDADES WHERE DATA_PREVISTA BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY)").list(); 
} 

我控制器

@RequestMapping(value = { "/"}, method = RequestMethod.GET) 
public String homePage(ModelMap model) { 
    //Lista as atividades da semana 
    List<Atividades> atividades = as.listAllAtividades(); 
    model.addAttribute("atividades", atividades); 
    System.out.println(atividades); 
    //noinspection SpringMVCViewInspection 
    return "index"; 
} 

和我的JSP

<c:forEach items="${atividades}" var="ati"> 
            <tr> 
             <td>${ati.atividade}</td> 
             <td>${ati.local}</td> 
             <td>${ati.dataPrevista}</td> 
             <td>${ati.hora}</td> 
             <td>${ati.destinatarios}</td> 
            </tr> 
           </c:forEach> 

錯誤

 org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/views/index.jsp at line 48 

      45: <tbody> 
      46: <c:forEach items="${atividades}" var="ati"> 
      47:  <tr> 
      48:  <td>${ati.atividade}</td> 
      49:  <td>${ati.local}</td> 
      50:  <td>${ati.dataPrevista}</td> 
      51:  <td>${ati.hora}</td> 

java.lang.NumberFormatException: For input string: "atividade" 

任何解決這個問題的幫助?

UPDATE

隨着我的服務器更新的查詢uotput我有這樣的反應

Hibernate: 
SELECT 
    * 
FROM 
    ATIVIDADES 
WHERE 
    DATA_PREVISTA BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY) 

[Ljava.lang.Object; @ 2a6e2a42]

所以我看到我得到一個物體

+0

和更新後閱讀實體的查詢。你是否得到同樣的錯誤? –

+0

是的,我這樣做,相同 – gmc1972

+0

mhm,列表的內容肯定有問題。這就是我所能想到的。 –

回答

1

createSQLQuery.list()將始終返回List<Object[]>(如果指定了多個列)。但是,您可以通過以下方式獲得List<Atividades>

@Override 
public List<Atividades> listAllAtividades() { 
    session.openSession(); 
    return session.getCurrentSession() 
        .createSQLQuery("SELECT * FROM ATIVIDADES WHERE DATA_PREVISTA BETWEEN NOW() AND DATE_ADD(NOW(), INTERVAL 7 DAY)") 
        .addEntity(Atividades.class) 
        .list(); 
} 

可以在here

+0

非常感謝你們所有人的幫助 – gmc1972

0

此行:List<Atividades> atividades = as.listAllAtividades();可能不會給你你想要的。當您在SQL查詢中選擇單個字段時,將獲得List<Object[]>而不是List<Entity_You_Wanted>。雖然你得到它是一個奇怪的List<Atividades>。無論如何,嘗試讓你的查詢獲得整個實體。如果是HQL,那麼就像SELECT * FROMSELECT FROM Atividade WHERE..。讓我現在,如果它的工作。

聲明:我可能是錯的,因爲您可以返回List<Atividades>的事實對我來說有點奇怪。

+0

檢查更新 – gmc1972

相關問題