【发布时间】:2017-04-10 06:00:01
【问题描述】:
我在 JpaRepository 中有一个方法应该返回 JPA 实体列表:
@Entity
public class SomeEntity {
// ...
}
@Repository
public interface SomeOtherEntityRepository extends JpaRepository<SomeOtherEntity, Long> {
@Query(value = "select some big long native query", nativeQuery = true)
public List<SomeEntity> getThings(String key);
}
当这个查询执行并且我尝试访问List 中的条目时,我得到一个ClassCastException:
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to my.package.SomeEntity
at java.util.ArrayList.forEach(ArrayList.java:1249)
at ...
这似乎破坏了 Java 中的强类型变量。我不知道这是可能的。我可以更改我的代码以期望一个 Object 数组并将 Object 数组转换为实体,但这似乎是我不应该做的事情。
【问题讨论】:
-
您能否粘贴完整的本机查询(或至少粘贴选择部分)。似乎 jpa/spring-data 无法解析查询的返回类型,默认返回 Object[]
标签: java hibernate spring-data-jpa