jpql - representación - jpa query example
java.sql.SQLException: no se puede convertir a la representación interna (4)
Consulte con su clase de frijol. El tipo de datos de columna y el tipo de datos de bean deben ser iguales.
Estoy tratando de ejecutar la siguiente consulta:
String query = "select entity, entity.id from Site entity";
List resultList = entityManager.createQuery(query).getResultList();
Y tomar la excepción:
[...]
Caused by: java.sql.SQLException: Fail to convert to internal representation
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.CharCommonAccessor.getLong(CharCommonAccessor.java:239)
at oracle.jdbc.driver.OracleResultSetImpl.getLong(OracleResultSetImpl.java:552)
at oracle.jdbc.driver.OracleResultSet.getLong(OracleResultSet.java:1575)
at org.jboss.resource.adapter.jdbc.WrappedResultSet.getLong(WrappedResultSet.java:724)
at org.hibernate.type.LongType.get(LongType.java:28)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
at org.hibernate.type.ManyToOneType.hydrate(ManyToOneType.java:103)
at org.hibernate.type.EntityType.nullSafeGet(EntityType.java:204)
at org.hibernate.loader.hql.QueryLoader.getResultColumnOrRow(QueryLoader.java:338)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:606)
at org.hibernate.loader.Loader.doQuery(Loader.java:701)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
... 102 more
¿Qué estoy haciendo mal? Gracias de antemano.
Revise su clase de entidad. Use Cadena en lugar de Largo y flotar en lugar de doble.
Sus tipos de datos no coinciden cuando está recuperando los valores de campo. Verifique su código y asegúrese de que para cada campo que está recuperando el objeto java coincida con ese tipo. Por ejemplo, recuperando una fecha en e int. Si está haciendo una selección *, es posible que se haya producido un cambio en los campos de la tabla que haya provocado este error. Su SQL solo debe seleccionar los campos que desea específicamente para evitar este error.
Espero que esto ayude.
Tuve el mismo problema y esta es mi solución. Tuve el siguiente código:
se.GiftDescription = rs.getString(1);
se.GiftAmount = rs.getInt(2);
Y lo cambié a:
se.GiftDescription = rs.getString("DESCRIPTION");
se.GiftAmount = rs.getInt("AMOUNT");
Y el problema fue que, después de reiniciar mi PC, las posiciones de la columna cambiaron. Es por eso que tengo este error.