Spring Data JPA – 自定义本机查询方法列表打印 java.lang.Object

Spring Data JPA – Custom Native Query-Methods list prints java.lang.Object

我创建了一个本地自定义查询方法:

 public List<Product> test() {
       return (em.createNativeQuery("SELECT * from products")).getResultList();
 }

并通过以下方式调用 EntityManager:

@PersistenceContext
private EntityManager em;

但我得到的只是:

[[Ljava.lang.Object;@3e9645ea, [Ljava.lang.Object;@a4d8d28, [Ljava.lang.Object;@402a1b8d, [Ljava.lang.Object;@3e654fce, [Ljava.lang.Object;@3250e4fd, [Ljava.lang.Object;@54921b52]

当我打印出列表时。对象的数量是正确的,所以我假设铸造的东西是不正确的。我确实在 IDE:

中收到警告
Unchecked assignment: 'java.util.List' to 'java.util.List<packageName.Product>' 

为什么会发生这种情况,如何获得正确的列表?

您可以在 createNativeQuery 方法中使用预期的类型,如下所示,

query = entityManager.createNativeQuery("SELECT * from products", Product.class)
List<Product> results = query.getResultList();