我在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
暂无答案!
目前还没有任何答案,快来回答吧!