集群导致的数据并发异常
例如库存只剩余一个 同时进入两个请求 数据可能出现负值的情况
解决方案
在数据库中将字段定义为unsigned
repository INT(11) unsigned DEFAULT '0'COMMENT '库存'复制代码
程序中 如果数据已经为0 程序依然请求减一的操作 数据会出现DataIntegrityViolationException 异常
try {
//执行数据库库存-1的操作
......
} catch (DataIntegrityViolationException e) { //并发导致的库存问题
//异常处理
......
}复制代码
通过这种方式可以保证数据的正确性
未经作者允许 请勿转载,谢谢 :)