序列的Nextval返回null

时间:2013-12-11 18:09:37

标签: oracle session

我正在尝试检查序列的下一个val。

以下是方法:

public Long getCodeCommercialOffer(final String seq) {
  final Session session = (Session) getEntityManager().getDelegate();
  Query q= (Query) session.createQuery("SELECT " + seq + ".nextval FROM dual");
  return (Long) q.getSingleResult();
}

为什么返回始终为null?

2 个答案:

答案 0 :(得分:1)

我不确定你作为seq名称传递的是什么值。您可能需要将模式名称附加到序列的前面(例如:mySchema.sequenceName)。我建议您打印出您尝试运行的SQL语句,在数据库查询工具中单独运行该语句(例如:TOAD),调整SQL以使其正常工作,然后将其放回代码中。

答案 1 :(得分:0)

感谢您的回答,最后我找到了解决方案。

问题是演员表,我用BigDecimal代替Long