休眠中的锁行更新

时间:2018-12-12 17:43:58

标签: hibernate

我必须更改几条记录,分配旅行车辆。

我需要确认车辆不在同一地点,并且需要花费几秒钟的时间。

因此,当所有行程的车辆分配未完成时,我需要阻止其他用户更改此数据。

有人可以帮我吗,我使用休眠3

1 个答案:

答案 0 :(得分:0)

我通过更改sql语句解决了此问题。我没有对每个记录运行休眠更新,而是进行了级联更改,并在进行更改之前放入了业务规则。

@Override
public void substituirViagensLote(TrEmpresaReguladora er, TrViagem v, String... args) throws DaoException {
    StringBuffer str = new StringBuffer("UPDATE TrViagem SET "
                                    + " viagDataAlteracao = TO_DATE('" + args[0] + "', 'dd/mm/yyyy hh24:mi:ss'),"
    str.append(" veicCodigo.veicCodigo = " + Long.parseLong(args[3]) + ",");
    str.append(" WHERE 1=1");
    str.append(" AND viagCodigo IN (" + args[6] + ")");

    executeHql(v, OperacaoEnum.UPDATE, str.toString());
}