Play 2.0 несколько фьючерсов Akka для изменения одной и той же записи базы данных

Я использую Play 2.0.4 Java. Есть два apis, один - для удаления деталей элемента из объекта канала, а другой - для добавления. Оба API используют Akka.future (). Как я могу избежать исключения ebean из Play (см. Ниже), когда оба apis называются очень близко, чтобы модифицировать один и тот же объект базы данных (одна и та же запись)?

Модельный объект

public class Channel extends Model {
  .....
  @OneToMany(cascade=CascadeType.ALL, mappedBy="channelInfo")
  private Set members;

  public void addMemberId(String memberId) {
      List memberIdslList = this.getMemberIdsList();
      if (!memberIdslList.contains(memberId)) {
        ChannelDetailMember dMember = new ChannelDetailMember(memberId, this);
        dMember.save();
        membersCount++;
        this.getMembers().add(dMember);
       }
   }

   public void removeMemberId(String memberId) {
       Iterator iter = this.getMembers().iterator();
       while (iter.hasNext()) {
          ChannelDetailMember dMember = iter.next();
          if (dMember.getMemberId().equals(memberId)) {
            dMember.delete();
            iter.remove();
            membersCount--;
            break;
           }
       }
   }
}

Запрос 1: Удалить член из списка членов канала объекта

public static Result removeMemberIdFromChannel(final String name, final String memberId) {  
   Promise promiseRemove = Akka.future(
     new Callable() {
       public ObjectNode call() {
            Channel channel = find.where().eq("name", name).findUnique();
            channel.removeMemberId(memberId);
       }
     }
   )
   .....
}

Запрос 2: Добавить член из списка участников канала объекта

public static Result addMemberIdToChannel(final String name, final String memberId) {   
   Promise promiseRemove = Akka.future(
     new Callable() {
       public ObjectNode call() {
            Channel channel = find.where().eq("name", name).findUnique();
            channel.addMemberId(memberId);
       }
     }
   )
   ....
}

Исключения, которые я получил от Play, когда два запроса вызывают очень близко.

[error] play - Waiting for a promise, but got an error: Data has changed. updated [0] rows sql[update channel set members_count=?, update_date=? where id=? and channel_name=? and conversation_id=? and members_count=? and created_date=? and update_date=?] bind[null]
 at com.avaje.ebeaninternal.server.persist.dml.UpdateHandler.execute(UpdateHandler.java:106) ~[ebean-2.7.3.jar:na]
 at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.update(DmlBeanPersister.java:85) ~[ebean-2.7.3.jar:na]
 javax.persistence.OptimisticLockException: Data has changed. updated [0] rows sql[update channel set members_count=?, update_date=? where id=? and channel_name=? and conversation_id=? and members_count=? and created_date=? and update_date=?] bind[null]
    at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:105) ~[ebean-2.7.3.jar:na]
    at com.avaje.ebeaninternal.server.persist.dml.DmlHandler.checkRowCount(DmlHandler.java:123) ~[ebean-2.7.3.jar:na]
    at com.avaje.ebeaninternal.server.persist.DefaultPersistExecute.executeUpdateBean(DefaultPersistExecute.java:110) ~[ebean-2.7.3.jar:na]
    at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeNow(PersistRequestBean.java:531) ~[ebean-2.7.3.jar:na]
2