Problem with Oracle view queries

0

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

    
asked by Pepe Alonso 02.03.2018 в 14:29
source

0 answers