optimistic-locking

    4热度

    1回答

    我被检查的NHibernate的日志文件同步数据库状态,并发现了随机误差,如下: NHibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect): [MaltaIndependent.Modules._Au

    3热度

    1回答

    为支持乐观锁定的实体定义表索引的最佳做法是什么? 当然,实体ID必须是数据库中某些索引的一部分,才能通过ID进行快速查找。版本列呢?将它作为索引的一部分是否有意义? 如果我们不定义数据库主键,但是创建一个由实体id +版本列组成的索引会怎样? DB中有两行具有相同实体ID的风险?假设两个事务并行持有两个具有相同实体ID的实体?

    4热度

    2回答

    我有一个使用Tapestry5(java webframework)和Hibernate制作的Web应用程序。现在我试图添加乐观锁定。所以我添加了一个版本属性和乐观锁定工作,所以这很容易和快速。 但是,由于我的web应用程序使用“session-per-request”模式,我不确定使用此乐观锁定的最佳方式是什么。 会发生什么: 用户A打开页面,其中已赋值从entityA形式(第1版)。 User

    0热度

    1回答

    我有这样的方法: @Transactional(propagation = Propagation.REQUIRES_NEW) public void doSomeWork(){ Entity = entity = dao.loadEntity(); // do some related work ... try { dao.saveEntity(entity); } ca

    1热度

    1回答

    我所有的应用程序都使用现场级的乐观并发执行实地乐观并发。 这是通过跟踪原始数据库值并在原始值,更新值和当前数据库值之间执行3路比较以确定(a)用户更新的内容和(b)其他用户拥有的内容更新。 我的应用程序组连续的领域,并允许多个用户更新同一行中不同群体没有冲突。 这是因为它是常见的对相同的记录不同领域的合作不同的部门。 EF4.1似乎只有基于整个行来支持非常基本的并发模型! 这意味着用户将获得无休止

    2热度

    2回答

    我不知道什么是赶在6的JavaEE的OptimisticLockException最好的方式,我有以下EJB: @Stateless public class SeminarBooking { public void bookSeminar(Long seminarId, int numberOfPersons) { ... //check capacity & do b

    0热度

    1回答

    在我们的旧数据库结构中,我们在一个表中有两个字段在我们更改数据时得到更新。 create table dbo.example( name varchar(50), ..., changed smalldatetime, -- here we save the last update date version int -- and here we incr

    0热度

    1回答

    阅读these笔记。在EBean网站页面上。有一个段落包含: “使用EJB3容器管理EntityManager的自然方式是使用有状态会话Bean的 ”。 也有像 暴露的问题,用户思考时间 ““如何在管理的EntityManager” 因此,这个问题:是什么在EJB无状态Bean做/提供可以解决上述问题与“用户思考时间”? 我想ejb提供:“会话管理”,但什么问题存储会话上ThredLocal变量a

    1热度

    1回答

    我试图使用Hibernate的自动版本,但在更新方法F中的会议被称为我没有看到在版本字段中输入在查询的WHERE子句也不是在数据库中增加的版本。我正在做一些根本性的错误,但是什么?调用sesssionFactory的getCurrentSession是个问题吗? 我有以下的实体类: package dslibweb.model; import javax.persistence.Entity;

    1热度

    1回答

    我正在使用带有扩展会话/自动版本控制的标准乐观并发控制场景。我有一个实体,我在第一个事务中加载,提交给用户进行修改并保存在第二个事务中,这两个事务共享同一个会话。在第二个事务结束时,实体在某种程度上被修改为session.flush()后,如果检测到版本不一致,则可能抛出StaleObjectStateException,这意味着并发事务已在其中保存了下一个版本的实体。 我想以最简单的方式处理这样