1

我发现使用这样一个非常常见的查询:

@Query(nativeQuery=true, value="select * from questions where id in (22,45,65,777,444)")生成对象列表而不是问题对象列表。

[[Ljava.lang.Object;@49fd8d8f, [Ljava.lang.Object;@2558cd3c, [Ljava.lang.Object;@690a314b]

这种情况将如何解决?

我现在该如何管理?

谢谢!

编辑:

@RooJpaRepository(domainType = Challenge.class)
public interface ChallengeRepository extends ChallengeRepositoryCustom
{
    @Query(nativeQuery=true, value="select * from questions where id in (22,45,65,777,444)")
    List<Questions> chooseRandomOldQuestions();
}
4

1 回答 1

1

in我强烈觉得这与子句无关,而与您使用的类型有关。

您的存储库被键入到Challenge域类。Question(我猜你的意思是,而不是Questions)可能不是一个子类型,Challenge对吧?如果是这种情况,我们不会将域类型交给EntityManager以适应人们执行投影到等的场景,Long如果我们将非托管类型交给查询执行,查询执行将失败。

解决方法是创建一个专用的存储库管理Question(s)实例(仍然不确定这是一个错字还是一个单独的类)应该可以解决问题。

于 2013-08-09T12:13:00.327 回答