0x00 概述
在项目开发中,采用Mongo存储,使用MongoRepository进行数据查询,数据库对应的实体如下:
public class Test{
private Object o1;
private Object o2;
}
0x01 问题现象
在业务查询中,数据查询正常,但是调delete方法时报了如下所示的错误:
java.lang.IllegalArgumentException: Could not obtain required identifier from entity
经过排查,得知查询出来的数据未带Id属性,无法删除,由于开始使用的是Mongo自带的ID,未考虑自定义ID属性,所以查询未带Id导致删除出错。
0x001 解决办法
在原来的删除的实体类上加上ID属性,即可,如下:
public class Test{
@Id
private String id;
private Object o1;
private Object o2;
}