JPA ignora un atributo de la clase de entidad y no persiste un campo

Antecedentes

Versión JDK: 1.8

Marco: SpringBoot 2.x

ORM: PSD

Propósito

Agregue un atributo a la entidad de mapeo de la tabla, y no es necesario agregar este campo en la tabla de datos.

 Anormal

Después de ejecutar los datos de la consulta, se informa la siguiente excepción:

Causado por: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Columna desconocida 'scheduling0_.res_name' en 'lista de campos' 
    en sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method) 
    en sun.reftru.Native. ) 
    en sun.reflect.DelegatingConstructorAccessorImpl.newInstance (Fuente desconocida) 
    en java.lang.reflect.Constructor.newInstance (Fuente desconocida) 
    en com.mysql.jdbc.Util.handleNewInstance (Util.java: 425 ) 
    en com.mysql.jdbc .Util.getInstance (Util.java: 408 ) 
    en com.mysql.jdbc.SQLError.createSQLException (SQLError.java: 944  )
    en com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java:3976 ) 
    en com.mysql.jdbc.MysqlIO.checkErrorPacket (MysqlIO.java: 3912 ) 
    en com.mysql.jdbc.MysqlIO.sendCommand (MysqlIO.java: 2530 ) 
    en com.mysql.jdbc.MysqlIO.sqlQueqlIO.sqlQryq.QQ : 2683 ) 
    en com.mysql.jdbc.ConnectionImpl.execSQL (ConnectionImpl.java: 2486 ) 
    en com.mysql.jdbc.PreparedStatement.executeInternal (PreparedStatement.java: 1858 ) 
    en com.mysql.jdbc.PreparedStatement.executeQuery (Prepared.executeQuery. java: 1966 ) )
    en com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery (FilterChainImpl.java: 3188 )
    en com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_executeQuery (FilterEventAdapter.java: 465 ) 
    en com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery (FilterChainImpl.java: 3185 ) 
    en com.alibaba.druid.wall.WallFilter.preparedStatement_executeQuery (WallFilter.java: 640 ) 
    en com.alibaba.druid.filter.FilterChainImpl.preparedStatement_executeQuery (FilterChainImpl.java: 3185 ) 
    en com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_executeQuery (FilterEventAdapter.java: 465 
    en com.alibaba.druid .filter.FilterChainImpl.preparedStatement_executeQuery (FilterChainImpl.java: 3185 )
    en com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.executeQuery (PreparedStatementProxyImpl.java: 181 ) 
    en com.alibaba.druid.pool.DruidPooledPreparedStatement.executeQuery (DruidPooledPreparedStatement.java: 228 ) 
    en org.hibernate.engine.jdbc.internal .ResultSetReturnImpl.extract (ResultSetReturnImpl.java: 60 ) 
    ... 101 más

Razón

 Se informa la excepción anterior, lo que indica que incluso sin la  anotación @Column , JPA persistirá en el campo.

Resolver

JPA no persiste una solución de campo

La  anotación @Transient indica que este atributo no es una asignación a un campo de tabla de base de datos, y el marco ORM ignorará este atributo.

 

De esta manera, la consulta, agregar y otras operaciones no informarán un error. Al realizar consultas, la lógica separada asigna valor a este atributo y se puede expandir.

 

Supongo que te gusta

Origin www.cnblogs.com/codecat/p/12661039.html
Recomendado
Clasificación