【发布时间】:2016-04-13 14:39:39
【问题描述】:
当我尝试执行这个查询时,我得到了这个异常
线程“主”java.lang.IllegalArgumentException 中的异常: NamedQuery of name: odcalls.call not found.
这是我的命名查询
@NamedQuery(name="odcalls.call",
query="SELECT C.count(id),"
+ "C.date(CalllocalTime),"
+ "C.hour(CalllocalTime) from ODCalls as C "
+ "where "
+ " C.date(CallLocalTime) between date_sub(curdate(), Interval 12 month) and date_sub(curdate(),Interval 1 day) : Date "
+ " and C.FirstQueue != 0 : String "
+ " and C.Calltype in (1) : int "
+ "GROUP BY C.hour(CallLocalTime), C.date(CallLocalTime)")
这是我的 DAO
public class ODCallsImpl implements IDao <ODCalls> {
EntityManager em = EntitiyManagerUtil.getInstance().getEntityManager();
private List<ODCalls> calls = new ArrayList<ODCalls>();
@SuppressWarnings("unchecked" @Override
@PersistenceContext
public List<ODCalls> getAll() {
calls = em.createNamedQuery("odcalls.call",ODCalls.class).getResultList();
em.close();
return calls;
}
【问题讨论】:
-
请格式化您的代码(在 Eclipse 中,选择和
Ctrl + Shift + F)。现在绝对无法阅读。 -
问题是当累比堆栈overglow 说的时候 × 您的帖子似乎包含未正确格式化为代码的代码。请使用代码工具栏按钮或 CTRL+K 键盘快捷键将所有代码缩进 4 个空格。如需更多编辑帮助,请单击 [?] 工具栏图标。
-
@user3656547 我已经格式化了你的文本。我认为您可以接受这些更改。
-
感谢 Rubio 的格式化
-
不客气。我刚刚从接受的答案stackoverflow.com/questions/20497816/… 中找到了这个“使用 em.createQuery(... 而不是 em.createNamedQuery()。”