【发布时间】:2023-04-05 15:15:01
【问题描述】:
我需要在新插入的行中插入一条新记录,使用 city_id 列的 MAX 值加一。因此如果 MAX 值为 14,则下一个插入行的 city_id 列值应为 15。
在我的代码中,我将获取 city_id 列的最大值,将其递增,然后将其保存。我正在为该代码使用 spring 事务。
private void saveCityDetail(final CityBO googleCityBO) {
if (googleCityBO.getId() == null) {
final Long cityId = cityMasterRepository.findMaxCityId();
googleCityBO.setCityId(cityId + 1);
googleCityBO.setActive(true);
}
cityMasterRepository.save(cityEntityBOMapper.convertCityBOToCityEntity(googleCityBO));
}
我想知道应该使用隔离级别,以便事务可以读取最大计数并获取读取锁,以便其他事务应该等待该事务完成。
【问题讨论】:
标签: java mysql hibernate jpa transactions