2013-12-11 34 views
-1

我试图检查序列的下一个val。squence的下一个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(); 
} 

为什么回报总是空?

+0

从这样的序列中选择似乎很奇怪。为什么在将数据插入系统时直接引用序列,并使用RETURNING获取分配的值? –

回答

0

谢谢你的回答,最后我找到了解决办法。

问题是演员,我用BigDecimal而不是长的替换它

1

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

相关问题