java.sql.SQLException: ne parviennent pas à convertir à la représentation interne
Je suis en train exécuter la requête suivante:
String query = "select entity, entity.id from Site entity";
List resultList = entityManager.createQuery(query).getResultList();
Et de prendre l'exception:
[...]
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
Ce que je fais mal?
Je vous remercie à l'avance.
- Il y a une question similaire ici stackoverflow.com/questions/4268093/...
- Dans mon cas, la base de données de la colonne est de type varchar et la variable java était Entier au lieu de la Chaîne. Changer de Chaîne travaillé.
Vous devez vous connecter pour publier un commentaire.
Vos types de données sont incompatibles lorsque vous extrayez les valeurs de champ. Vérifiez votre code et de s'assurer, pour chaque champ que vous êtes à la récupération de l'objet java matches de ce type. Par exemple, l'extraction d'une date dans et int. Si tu fais un select * ensuite, il est possible qu'un changement dans les champs de la table qui s'est passé la cause de cette erreur. Votre SQL convient de sélectionner uniquement les champs que vous souhaitez afin d'éviter cette erreur.
Espère que cette aide.
Vérifier votre classe d'Entité. Utilisez de la Ficelle au lieu de Longs et flottants au lieu du double .
J'ai eu le même problème et c'est ma solution. J'ai eu le code suivant:
Et je l'ai changé pour:
Et le problème c'est qu'après j'ai redémarré mon PC, les positions des colonnes changé. C'est pourquoi j'ai eu cette erreur.
Vérifiez auprès de votre classe d'haricot.
Type de données de colonne et de haricots de type de données doit être la même.