我想从返回一个整数列表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。