以下是查询。
DetachedCriteria dc= DetachedCriteria.forClass(ADMPregenAWBMaster.class)
.add(Restrictions.eq("carrCode", awbEntity.getCarrierCode()))
.add(Restrictions.eq("tenantId", awbEntity.getTenantId()))
.add(Restrictions.eq("logisticTypeCode", awbEntity.getDeliveryType()))
.add(Restrictions.eq("paymentType", awbEntity.getPaymentType()))
.setProjection(Projections.property("pregenAWBId"));
CMPregenAWBSeq pregen= (CMPregenAWBSeq)session.createCriteria(CMPregenAWBSeq.class)
.add(Subqueries.propertyIn("compsiteKey.pregenMaster", dc))
.setLockMode(LockMode.UPGRADE_NOWAIT)
.setMaxResults(1)
.uniqueResult();
pregen.setUsedFlag("Y");
session.update(pregen);
当我根据条件选择表行时,应该应用锁定,并且在表格行更新之前,任何其他线程都不应该读取查询。我不确定上面的代码是否按预期工作。
非常感谢任何帮助。