我想从返回一个整数列表
javax.persistence.EntityManager.createNativeQuery调用

为什么以下不正确?

entityManager.createNativeQuery("Select P.AppID From P", Integer.class);

特别是为什么我会得到“...未知实体:java.lang.Integer”

我是否必须创建一个实体类,该实体类具有一个作为Integer的单个字段?

谢谢

最佳答案

您所做的称为投影。那是当您仅返回属于一个实体的标量值时。您可以使用JPA做到这一点。参见scalar value

我认为在这种情况下,可以完全省略实体类型:

   Query query = em.createNativeQuery(  "select id from users where username = ?");
   query.setParameter(1, "lt");
   BigDecimal val = (BigDecimal) query.getSingleResult();

示例取自here

07-24 09:27