Java POJO脏跟踪方案咨询:Spring MongoDB增量更新需求
Spring MongoDB POJO脏属性自动跟踪实现方案
需求说明
我在使用Spring MongoDB仓库时,希望通过补丁操作最小化数据更新量,因此需要跟踪POJO中哪些属性被修改。理想的实现效果如下,但不想手动为每个属性的set方法添加dirtyProperties.add()逻辑:
class MyPojo { Set<String> dirtyProperties; int i; void setI(int i) { this.i = i; dirtyProperties.add("i"); } }
现有调研疑问
- AOP/AspectJ是否仅适用于Spring Bean?Spring仓库返回的POJO并非Bean,这种场景下还能用吗?
- 使用ByteBuddy拦截器或动态代理,是否需要为每个POJO单独创建代理类?
- 能否自定义Lombok @Data的代码生成逻辑,让它自动添加脏属性跟踪的代码?
- 除此之外,还有哪些可行的实现方案?
期望诉求
希望找到类似Lombok @Data的注解式自包含解决方案,只需给POJO类添加注解,就能自动生成脏属性跟踪的相关代码。
内容的提问来源于stack exchange,提问作者SledgeHammer
相关产品推荐
相关产品推荐

