我正在使用Spring data jpa进行持久化。 假设我需要更新一个模型。 这个模型有'n'个字段和一个主键。
{
"some_model":{
"id":"5527716",
"field_one": "44248156",
"field_two": "44248156",
"field_three": "44248156",
"field_four": "44248156",
"field_five": "44248156",
"field_six": "44248156",
"field_seven": "44248156",
"field_eight": "44248156",
"field_nine":"65037768"
}
}
考虑上述json表示我的模型,我想要更新仅存在于该json中的字段(主键为Id,将始终存在)。有没有办法可以实现而不必明确检查每个字段并设置它们?
假设我收到了如下请求:
{
"some_model":{
"id":"5527716",
"field_one": "44248156",
"field_two": "44248156",
"field_three": "44248156",
"field_eight": "44248156",
"field_nine":"65037768"
}
}
我希望通过仅使用repository.save或类似的方法来实现更新(upsert类型的操作)。目前,使用repository的save方法在内部使用primaryKey值更新模型,但是对于缺失字段,它会将其设置为null。我希望这些字段保持不变。
主要问题是:有数百个模型,每个模型大约有10-15个字段,显式检查每个字段并更新所有模型将是一场噩梦。
我还检查了@DynamicUpdate注释,但它似乎适用于显式设置,其中生成的sql进行了优化。
我将感谢任何关于此的想法。