日期:2014-05-16  浏览次数:20469 次

mongodb + spring data一起使用时,bean的id应该用什么类型?
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, 但我没有去验证。