我有一个将由整数列组成的表,每个列都是一个序列。每一行代表一个客户账户和与之相关的序列。HQL - 在一个查询中更新字段并返回结果值
我试图找到一种有效的方法来更新一个特定序列的值由一个变量,然后检索更新的值,所有在一个HQL查询。我使用Hibernate 3.6.1和Spring 3.0.5。数据库是Postgres。
我可以做我想做一个本地SQL查询,如下所示:
update account.sequences set seq1 = seq1 + :seqIncrement where account_id = :accountId returning seq1;
不过,我会非常喜欢使用现有的实体名称/字段,而不是表名。更新的地点越少,名称越好。
我没有使用序列,因为我最终会处理数以千计的事情,而且它永远不会是一个直接的逐步操作。我正计划更新价值以涵盖我需要唯一ID的项目数量。通过在单个语句中执行此操作,我不必担心任何表锁定或并发问题。
所以......有没有人有更清洁的方式做到这一点?或者我只是在过度思考我已经可以做的事情?
我怀疑你是对的,而我正试图在这里过早优化。现在我要去选择锁定选项。它们应该都很短暂,如果它成为问题,那么我会在那时解决它。感谢您的意见。 – Jafoy 2011-04-21 13:29:03