【发布时间】:2015-05-03 23:41:20
【问题描述】:
我想执行一个简单的原生查询,但它不起作用:
@Autowired
private EntityManager em;
Query q = em.createNativeQuery("SELECT count(*) FROM mytable where username = :username");
em.setProperty("username", "test");
(int) q.getSingleResult();
为什么会出现这个异常?
org.hibernate.QueryException: Not all named parameters have been set: [username]
【问题讨论】:
-
只是提示,为什么要对这个查询使用本机查询?您可以使用 Jpa 查询语言来做同样的事情,更喜欢 Jpa 查询有很多好处。
-
@Rafael Zeffa 我可以在没有
@Entity类的情况下使用 jpa 吗?如果是这样,您能否建议如何使用 jpa 对其进行优化? -
没有实体就不行,但是为什么不能为那个表映射一个@entity呢?
-
你打电话给
setProperty。应该是setParameter。另见this answer