如何映射mongodb的spring-data中的枚举集合

时间:2011-07-21 17:06:31

标签: mongodb spring-data

使用MongoDB的spring-data 1.0.0.M3。为什么春天可以映射这个类:

import org.springframework.data.document.mongodb.index.IndexDirection;
import org.springframework.data.document.mongodb.mapping.Document;

@Document
public class EnumsMapper { 
  private IndexDirection d = IndexDirection.ASCENDING;
}

并且失败了这个:

import org.springframework.data.document.mongodb.index.IndexDirection;
import org.springframework.data.document.mongodb.mapping.Document;
import java.util.List;
import java.util.Arrays;

@Document
public class EnumsMapper { 
  List<IndexDirection> list_enum_test = Arrays.asList(
      new IndexDirection[] {IndexDirection.ASCENDING});

}

带有:

java.lang.IllegalArgumentException: can't serialize class org.springframework.data.document.mongodb.index.IndexDirection 

其他集合(集合,...)以及数组也会发生同样的情况。显然,spring可以映射这个枚举,因此编写映射器并不能解决问题。这是一个错误还是有一种方法来映射一个包含枚举的集合(set / map)?

1 个答案:

答案 0 :(得分:2)

好像你发现了一个bug :)。这是the bug,这里是the fix。部署到Maven仓库的快照二进制文件。如果您仍然遗失某些内容,请随意尝试并在机票上添加注释。