Hibernate不一致生成的Id

时间:2015-04-09 19:57:08

标签: java web-services hibernate postgresql hibernate-session

我有一个主要方法,它顺序调用两个Web服务。第一个Web服务首先将数据插入到请求表中,该表具有使用hibernate顺序生成的主键。该表还有一个状态字段,其初始状态为"已接收"。然后是第一个Web服务,处理此请求,然后更改状态"已处理"。

现在main方法调用第二个web-service来获取状态为" Processed"的请求。由于来自main方法的调用是顺序的,所以第二个web服务调用只能有一个条目,其状态为" Processed"。在此之后,主方法睡眠5秒并且无限重复处理。此外,当我获取此记录时,我将状态更改为"已完成"。

网络服务也在远程访问数据库。 数据也包含一个requestId(这不是主键)。

所以问题是当这个过程持续1小时后,我发现在发送和接收的requestId中存在一些不一致。这些ID并不匹配。 我可以看到有多个条目的状态保持Processed。 我使用hibernate id生成器作为增量,但在多个集群中测试此系统时,我遇到了uniqueConstraint异常。所以我开始使用序列生成器,现在面临这个问题。

提交后我是否需要使用flush?

0 个答案:

没有答案