spring-data-mongodb关于id的坑
有如下Mongo记录:
在Java中对应2个类来表示此结构:
public class SG_IMAGERELATION { @Id private String id; private int gisId; private List<SG_IMAGE> images; }
public class SG_IMAGE { private String id; private String fileName; private String smallPic; private String sgjd; private String address; private String uploadDate; private double lng; private double lat; private String pstatus; //get set 略 }
最后通过
SG_IMAGERELATION relation=mongoTemplate2.findOne(mongoQuery, SG_IMAGERELATION.class,collectionName)
结果是relation.images下面的元素,id值都取不到,查了一下springdata文档,原来是id这个字段的问题,在java class中增加一个id属性,它会自动映射成"_id",如果数据库中本来就是id,那么就读不到了
解决方法是在id字段上加上注解
@Field("id") 显示的指定它对应的属性名。