mongodb + spring data一起使用时,bean的id应该用什么类型? 在插入bean时我不会设置id的值,而是让mongodb/spring data把生成的_id塞进来。
用原子类型long, int 会有问题;不设置值时,值就是0, mongodb会认为你传的_id值为0. 第一条记录以_id=0插入成功后,插入第二条_id=0的记录时,系统会报键重复的异常。
用Long, Integer行不行? 也不行,因为Spring Data没有内置这样的转换。
正确答案是:String或BigInteger, Spring Data默认只支持这两种类型。参见:ObjectIdToBigIntegerConverter 和 ObjectIdToStringConverter . 或者你可以自定义一个converter, 但我没有去验证。