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();
我创建了一个本地自定义查询方法:
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();