我必须更改几条记录,分配旅行车辆。
我需要确认车辆不在同一地点,并且需要花费几秒钟的时间。
因此,当所有行程的车辆分配未完成时,我需要阻止其他用户更改此数据。
有人可以帮我吗,我使用休眠3
答案 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());
}