私は次のクエリを実行しようとしています:
String query = "select entity, entity.id from Site entity";
List resultList = entityManager.createQuery(query).getResultList();
そして例外を取ります:
[...]
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
何が間違っていますか?前もって感謝します。
フィールド値を取得するときに、データ型が一致しません。コードを確認し、取得するフィールドごとに、Javaオブジェクトがそのタイプに一致することを確認してください。たとえば、日付をintおよびintに取得します。select*を実行している場合は、テーブルのフィールドで変更が発生し、このエラーが発生している可能性がありますこのエラーを回避するには、SQLで特に必要なフィールドのみを選択する必要があります。
お役に立てれば。
Entityクラスを確認してください。 Longの代わりにStringを使用し、doubleの代わりにfloatを使用します。
私は同じ問題を抱えていましたが、これが私の解決策です。私は次のコードを持っていました:
se.GiftDescription = rs.getString(1);
se.GiftAmount = rs.getInt(2);
そして、それを次のように変更しました。
se.GiftDescription = rs.getString("DESCRIPTION");
se.GiftAmount = rs.getInt("AMOUNT");
問題は、PCを再起動した後、列の位置が変更されたことです。そのため、このエラーが発生しました。
Beanクラスを確認してください。列データ型とBeanデータ型は同じでなければなりません。