にキャストすることはできません。私はこのエラーに関していくつかのスレッドを見たことがありますが、私の状況に合うものはありません。私は、以下のように単純なJPQLクエリを持っています。これは、関数テーブル/エンティティから関数IDと名前を取り戻す必要があります。このクエリは、私のFunctionRepository.javaJava.lang.Object; <hibernate entity>
@Query("SELECT func.functionId, func.functionName"
+ " FROM Function func")
List<Function> findItAll();
-----below is my FunctionService.java-------
public ArrayNode getAllFunctions() {
ArrayNode json = null;
try {
List<Function> functions = (List<Function>) functionRepository.findItAll();
json = crudEntitiesToJson(functions);
} catch (CorruptDataException cdEx) {
logger.error(cdEx.getMessage());
}
return json;
}
「crudEntitiesToJson」メソッド内に保持される次の通りです。
private ArrayNode crudEntitiesToJson(Iterable<Function> entities) throws CorruptDataException {
ArrayNode result = new ArrayNode(JsonNodeFactory.instance);
for (Function entity : entities) {
result.add(FunctiontoJson(entity));
}
return result;
}
そして、これのすべては、私のFunctionController.javaでキックオフされ
プロジェクトのビルドと細かい動作しますが、私はそのクエリキックオフエンドポイントをヒットしようとすると、私は次のエラーを取得する:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.ge.starfish.entity.Function
私はどこが間違っているのか混乱していると思います。
ありがとうございます。あなたはその後、機能のリストにキャストしようとする2つの要素で
意味func.functionId, func.functionName
は、クエリがオブジェクト配列のリストを返します、それぞれ:あなただけのエンティティの二つのフィールドを選択している
これは機能しました。ありがとう。私はコードの完全に変更されたビットを与えたので、私はこの答えを受け入れたが、すべての提案/応答はほぼ同じです。 – RoflWaffle17