I'm having an error that I can not understand why it happens ... and therefore how to avoid it. I will try to explain it.
I created an entitity, from an oracle view:
@Entity
@Table(name = "VER_CONSULTAS_HISTORICO", schema = "HISTORICOS")
public class VerConsultasHistorico implements java.io.Serializable
{
// Fields
/**
*
*/
private static final long serialVersionUID = 6488969989163175302L;
private VerConsultasHistoricoId id;
private String tdDescripcion;
private String phNomb;
private String phPart1;
private String phApe1;
private String phPart2;
private String phApe2;
private String nombreCompleto;
private Date phFechaNac;
private String phTident;
private String phLextr;
private String phIden;
private String phLiden;
private String phNdocu;
private String identificadorcompleto;
private String phExtranjero;
private String phDistrito;
private String phSeccion;
private String phHoja;
private String phOrden;
private String phVia;
private String nombreCalle;
private String phCasa;
private String phBis;
private String phKm;
private String phBloque;
private String phPortal;
private String phEscalera;
private String phPlanta;
private String phPuerta;
private String phReferFami;
private String phOrdenFami;
private String phNumexpe;
private String phCaja;
private String phStad01;
// Campos Transient
private String ENCSARPFormateadoDet;
private String ENCSARPFormateadoSel;
private String literalBIIDet;
private String literalBIISel;
private String viaCompleta;
private String dshoCompleta;
private String fechaDocFormateada;
}
With Spring data
and JPA
I try to execute the following query:
@Repository("verConsultasHistoricoRepo")
@Transactional
public interface IVerConsultasHistoricoRepository extends JpaRepository<VerConsultasHistorico, VerConsultasHistoricoId>
{
@Query("select model from VerConsultasHistorico model where model.id.phCarnet = :carnet order by model.id.phFechaDoc")
public List<VerConsultasHistorico> consultaCarnet(@Param("carnet") String carnet);
}
But by console I see that it does the query first and followed by a UPDATE
instruction, that does not know where it comes from, who orders it, so it is done, nor ...
I've been desperate for this for several days and I can not find the solution. I hope you can give me some clue.
The output by console is:
14: 22: 41,181 INFO [stdout] (http - 0.0.0.0-8080-2) Hibernate: select verconsult0_.PH_CARNET as PH1_36_, verconsult0_.PH_FECHA_DOC as PH2_36_, verconsult0_.PH_TIPO_DOC as PH3_36_, verconsult0_.IDENTER COMPLETE as IDENTIFI4_36_ , verconsult0_.NOMBRE_CALLE as NOMBRE5_36_, verconsult0_.NOMBRE_COMPLETO as NOMBRE6_36_, verconsult0_.PH_APE1 as PH7_36_, verconsult0_.PH_APE2 as PH8_36_, verconsult0_.PH_BIS as PH9_36_, verconsult0_.PH_BLOQUE as PH10_36_, verconsult0_.PH_CAJA as PH11_36_, verconsult0_.PH_CASA as PH12_36_, verconsult0_ .PH_DISTRITO as PH13_36_, verconsult0_.PH_ESCALERA as PH14_36_, verconsult0_.PH_EXTRANJERO as PH15_36_, verconsult0_.PH_FECHA_NAC as PH16_36_, verconsult0_.PH_HOJA as PH17_36_, verconsult0_.PH_IDEN as PH18_36_, verconsult0_.PH_KM as PH19_36_, verconsult0_.PH_LEXTR as PH20_36_, verconsult0_.PH_LIDEN as PH21_36_, verconsult0_.PH_NDOCU as PH22_36_, verconsult0_.PH_NOMB as PH23_36_, verconsult0_.PH_NUMEXPE as PH24_36_, verconsult0_.PH_ORDEN as PH25_36_, verconsult 0_.PH_ORDEN_FAMI as PH26_36_, verconsult0_.PH_PART1 as PH27_36_, verconsult0_.PH_PART2 as PH28_36_, verconsult0_.PH_PLANTA as PH29_36_, verconsult0_.PH_PORTAL as PH30_36_, verconsult0_.PH_PUERTA as PH31_36_, verconsult0_.PH_REFER_FAMI as PH32_36_, verconsult0_.PH_SECCION as PH33_36_, verconsult0_. PH_STAD01 as PH34_36_, verconsult0_.PH_TIDENT as PH35_36_, verconsult0_.PH_VIA as PH36_36_, verconsult0_.TD_DESCRIPTION as TD37_36_ from PADRON.VER_HISTORIC_CONSULTAS verconsult0_ where verconsult0_.PH_CARNET =? order by verconsult0_.PH_FECHA_DOC
14: 22: 41,191 INFO [stdout] (http - 0.0.0.0-8080-2) Hibernate: update PADRON.VER_HEADS_HEADS set COMPLETE IDENTIFIER =?, NAME_CALLE =?, COMPLETE_NAME =?, PH_APE1 =? PH_APE2 =? , PH_BIS = ?, PH_BLOQUE = ?, PH_CAJA = ?, PH_CASA = ?, PH_DISTRITO = ?, PH_ESCALERA = ?, PH_EXTRANJERO = ?, PH_FECHA_NAC = ?, PH_HOJA = ?, PH_IDEN = ?, PH_KM = ?, PH_LEXTR = ?, PH_LIDEN = ?, PH_NDOCU = ?, PH_NOMB = ?, PH_NUMEXPE = ?, PH_ORDEN = ?, PH_ORDEN_FAMI = ?, PH_PART1 = ?, PH_PART2 = ?, PH_PLANTA = ?, PH_PORTAL = ?, PH_PUERTA = ?, PH_REFER_FAMI = ?, PH_SECTION =? , PH_STAD01 =?, PH_TIDENT =? PH_VIA =? TD_DESCRIPTION =? where PH_CARNET =? and PH_FECHA_DOC =? and PH_TIPO_DOC =?
14: 22: 41,203 INFO [stdout] (http - 0.0.0.0-8080-2) - SQL Error: 1733, SQLState: 42000
14: 22: 41,203 INFO [stdout] (http - 0.0.0.0-8080-2) - ORA-01733: virtual column not allowed here 14: 22: 41,204 INFO [stdout] (http - 0.0.0.0-8080-2)
14: 22: 41,205 INFO [stdout] (http - 0.0.0.0-8080-2) - HHH000010: On release of batch it still contained JDBC statements
14: 22: 41,207 Severe [javax.faces.event] (http - 0.0.0.0-8080-2) 'org.springframework.orm.jpa.JpaSystemException' received when invoking action listener '# {dataPadronBean.changeState (dtPadron)} 'for the component' Display ' 14: 22: 41,210 Serious [javax.faces.event] (http - 0.0.0.0-8080-2) org.springframework.orm.jpa.JpaSystemException: org.hibernate.exception.SQLGrammarException: ORA-01733: virtual column no allowed here ; nested exception is javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: ORA-01733: virtual column not allowed here
Why is the UPDATE
statement thrown, which I understand is the one that causes the oracle error, since indeed the view has many fields that are not updatable?
Thank you in advance and greetings