【发布时间】:2012-03-30 04:06:49
【问题描述】:
我试图通过应用程序在表中插入一些值并得到问题 ORA-00001:违反唯一约束。 我看到序列与表的最高 id 不同步,但即使在修复序列号之后,错误仍然存在。 我怎样才能更多地调试这个错误,oracle日志会给出更多错误吗?如何查看 oracle 日志? 谢谢 普里扬克
更新:我们正在使用审计日志插件,在用户的域类中,我们捕获保存事件并将条目记录到审计日志中
所以在 User 类中我们这样做:
class User {
//some attributes, constraints, mappings
def onSave = {
Graaudit aInstance = new Graaudit();
aInstance.eventType= "GRA User Create"
aInstance.eventDescription = "GRA User Created"
aInstance.objectid = username
aInstance.objecttype = 'GRAUSER'
aInstance.user_id = RequestContextHolder.currentRequestAttributes().session.username
aInstance.withTransaction{
aInstance.save()
}
}
}
当我们在 onSave 事件中没有上述代码时,用户被成功创建。
我假设它与我们在实例上使用的休眠事务有关,那是死亡或当前事务由于该保存而死亡.
如果我们不使用事务我们会得到一个异常"org.hibernate.HibernateException: No Hibernate Session bound to thread, and configuration does not allow creation of non-transactional one here"
不知道如何解决这个问题..
谢谢
【问题讨论】:
-
序列是唯一的约束,还是有其他约束?
标签: oracle hibernate transactions