使用EJB3在DB中的一个或多个表的状态

时间:2015-06-12 14:18:50

标签: java ejb-3.0

总而言之, 我们假设我们有很多实体A,B,C,D 当我调用ejb bean来保存新实体或更新实体时,我想找到一种模式来验证是否有另一个托管Bean线程已保存新实体A或B或C或D或者有更新一个或模式以验证是否有表我在交易中被修改 因为我喜欢保存新的实体A有一个字段整数依赖于山楂匹配特定实体B和c并且d保存在DB中

@Stateless
public class EntityABean implements EntityARemote, EntityALocal {

@Resource
 private SessionContext context;

@EJB
private DaoEntity daoEntityEjb;

public void doSomthing(Object param1, Object param2 ...) {
try {
 //dosomthing
}
catch(Excepyion ex) {
context.rollback();
throw ex;
}
}

1 个答案:

答案 0 :(得分:0)

您的问题不是很明确,但从我可以看出,您可能需要JPA的自动Optimistic Concurrency控制机制。 您需要按照here说明对您的版本列进行注释,其余的由基础JPA兼容提供程序负责。 有关详细信息,您可以查看另一个SO答案here

您可以通过指定锁定模式来进一步控制JPA管理版本化实体的锁定方式。您可以通过EntityManager类的lock()方法执行此操作。这是方法签名:

public void lock(Object entity, LockModeType lockMode);

有关详细说明,请查看here