“嵌套异常为org.hibernate.exception.genericjdbception:could not execute query”,同时读取“action”实体

fivyi3re  于 2021-07-16  发布在  Java
关注(0)|答案(0)|浏览(413)

我在spring boot中内置了一个webservice,当我读取表“action”时,它会向我发送以下错误:

2021-03-18 12:01:53.441 ERROR 37460 --- [nio-8082-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.orm.jpa.JpaSystemException: could not execute query; nested exception is org.hibernate.exception.GenericJDBCException: could not execute query] with root cause
java.sql.SQLException: Value '461C
2021-02-13
2021-02-25
0000-00-00������1���01rubenruben

实体:

@Entity
@Table(name = "accion")
public class Accion implements Serializable {

    @EmbeddedId
    protected AccionPK accionPK;

    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "acn_latitud")
    private Double latitud;

    @Column(name = "acn_longitud")
    private Double longitud;

    @Lob
    @Column(name = "acn_foto")
    private byte[] foto;

    @Size(max = 20)
    @Column(name = "acn_documento")
    private String documento;
    @Size(max = 1)
    @Column(name = "acn_forma_cobro")
    private String formaCobro;

    @Column(name = "acn_monto_programado")
    private Double montoProgramado;

    @Column(name = "acn_monto_entregado")
    private Double montoEntregado;

    @Column(name = "acn_fecha_programada")
    @Temporal(TemporalType.DATE)
    private Date fechaProgramada;

    @Column(name = "acn_hora_programada")
    @Temporal(TemporalType.TIME)
    private Date horaProgramada;

    @Size(max = 300)
    @Column(name = "acn_nota")
    private String nota;

    @Column(name = "acn_orden_id")
    private Long ordenId; 

    @Column(name = "acn_lugar_levantamiento")
    private Integer lugarLevantamiento;

    @Column(name = "acn_fecha_adicion")
    @Temporal(TemporalType.DATE)
    private Date fechaAdicion;

    @Size(max = 30)
    @Column(name = "acn_usuario_adicion")
    private String usuarioAdicion;

    @Column(name = "acn_fecha_cambio")
    @Temporal(TemporalType.DATE)
    private Date fechaCambio;

    @Size(max = 30)
    @Column(name = "acn_usuario_cambio")
    private String usuarioCambio;

    @Column(name = "acn_fecha_entrega")
    @Temporal(TemporalType.DATE)
    private Date fechaEntrega;

    @Size(max = 30)
    @Column(name = "acn_usuario_entrega")
    private String usuarioEntrega;

    @Size(max = 1)
    @Column(name = "acn_estado")
    private String estado;

    @JoinColumn(name = "acn_visita_id", referencedColumnName = "vst_visita_id", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Visita visita;

    @JoinColumn(name = "acn_precios_id", referencedColumnName = "pre_precios_id")
    @ManyToOne
    private Precios precios;

    public Accion() {
    }

    public AccionDAO getDAO() { 
        String p1 = precios.getPreciosId().toString();
        Long p = p1 == "0" ? null : precios.getPreciosId();
        System.out.println("Precio Id: " + precios.getPreciosId());
        return new AccionDAO(accionPK.getVisitaId(), accionPK.getTipo(), latitud, longitud, 
                documento, formaCobro,
                montoProgramado, montoEntregado, 
                null, null, null, nota, 
                ordenId, p,
                estado);
    } 

    public AccionPK getAccionPK() {
        return accionPK;
    }

    public void setAccionPK(AccionPK accionPK) {
        this.accionPK = accionPK;
    }

    public Double getLatitud() {
        return latitud;
    }

    public void setLatitud(Double latitud) {
        this.latitud = latitud;
    }

    public Double getLongitud() {
        return longitud;
    }

    public void setLongitud(Double longitud) {
        this.longitud = longitud;
    }

    public byte[] getFoto() {
        return foto;
    }

    public void setFoto(byte[] foto) {
        this.foto = foto;
    }

    public String getDocumento() {
        return documento;
    }

    public void setDocumento(String documento) {
        this.documento = documento;
    }

    public String getFormaCobro() {
        return formaCobro;
    }

    public void setFormaCobro(String formaCobro) {
        this.formaCobro = formaCobro;
    }

    public Double getMontoProgramado() {
        return montoProgramado;
    }

    public void setMontoProgramado(Double montoProgramado) {
        this.montoProgramado = montoProgramado;
    }

    public Double getMontoEntregado() {
        return montoEntregado;
    }

    public void setMontoEntregado(Double montoEntregado) {
        this.montoEntregado = montoEntregado;
    }

    public Date getFechaProgramada() {
        return fechaProgramada;
    }

    public void setFechaProgramada(Date fechaProgramada) {
        this.fechaProgramada = fechaProgramada;
    }

    public Date getHoraProgramada() {
        return horaProgramada;
    }

    public void setHoraProgramada(Date horaProgramada) {
        this.horaProgramada = horaProgramada;
    }

    public String getNota() {
        return nota;
    }

    public void setNota(String nota) {
        this.nota = nota;
    }

    public Long getOrdenId() {
        return ordenId;
    }

    public void setOrdenId(Long ordenId) {
        this.ordenId = ordenId;
    }

    public Integer getLugarLevantamiento() {
        return lugarLevantamiento;
    }

    public void setLugarLevantamiento(Integer lugarLevantamiento) {
        this.lugarLevantamiento = lugarLevantamiento;
    }

    public Date getFechaAdicion() {
        return fechaAdicion;
    }

    public void setFechaAdicion(Date fechaAdicion) {
        this.fechaAdicion = fechaAdicion;
    }

    public String getUsuarioAdicion() {
        return usuarioAdicion;
    }

    public void setUsuarioAdicion(String usuarioAdicion) {
        this.usuarioAdicion = usuarioAdicion;
    }

    public Date getFechaCambio() {
        return fechaCambio;
    }

    public void setFechaCambio(Date fechaCambio) {
        this.fechaCambio = fechaCambio;
    }

    public String getUsuarioCambio() {
        return usuarioCambio;
    }

    public void setUsuarioCambio(String usuarioCambio) {
        this.usuarioCambio = usuarioCambio;
    }

    public Date getFechaEntrega() {
        return fechaEntrega;
    }

    public void setFechaEntrega(Date fechaEntrega) {
        this.fechaEntrega = fechaEntrega;
    }

    public String getUsuarioEntrega() {
        return usuarioEntrega;
    }

    public void setUsuarioEntrega(String usuarioEntrega) {
        this.usuarioEntrega = usuarioEntrega;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public Visita getVisita() {
        return visita;
    }

    public void setVisita(Visita visita) {
        this.visita = visita;
    }

    public Precios getPrecios() {
        return precios;
    }

    public void setPrecios(Precios precios) {
        this.precios = precios;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (accionPK != null ? accionPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Accion)) {
            return false;
        }
        Accion other = (Accion) object;
        if ((this.accionPK == null && other.accionPK != null) || (this.accionPK != null && !this.accionPK.equals(other.accionPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Accion[ accionPK=" + accionPK + " ]";
    }

}
@Embeddable
public class AccionPK implements Serializable {

    private static final long serialVersionUID = 1L;
    @Basic(optional = false)
    @NotNull
    @Column(name = "acn_visita_id")
    private long visitaId;
    @Basic(optional = false)
    @NotNull
    @Column(name = "acn_tipo")
    private int tipo;

    public AccionPK() {
    }

    public AccionPK(long visitaId, int tipo) {
        this.visitaId = visitaId;
        this.tipo = tipo;
    }

    public long getVisitaId() {
        return visitaId;
    }

    public void setVisitaId(long visitaId) {
        this.visitaId = visitaId;
    }

    public int getTipo() {
        return tipo;
    }

    public void setTipo(int tipo) {
        this.tipo = tipo;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (int) visitaId;
        hash += (int) tipo;
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof AccionPK)) {
            return false;
        }
        AccionPK other = (AccionPK) object;
        if (this.visitaId != other.visitaId) {
            return false;
        }
        if (this.tipo != other.tipo) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "AccionPK[ visitaId=" + visitaId + ", tipo=" + tipo + " ]";
    }

}
import java.util.List;      

import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;

/**
 * Repositorio CRUD, interface para la entidad 'Accion'
 *
 * @author Rubén
 */
public interface AccionRepository extends CrudRepository<Accion, Long>{

    @Query("SELECT a FROM Accion a WHERE a.accionPK.visitaId = ?1")
    public List<Accion> findByVisita(Long visitaId);

    @Query("SELECT a FROM Accion a WHERE a.accionPK.visitaId = ?1 AND a.accionPK.tipo = ?2")
    public Accion findByVisitaTipo(Long visitaId, int tipo);
}
enter code here

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题