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") 显示的指定它对应的属性名。
posted @ 2018-11-29 15:43  zdkjob  阅读(6108)  评论(0编辑  收藏  举报