通过Spring Data将joda DateTime插入MongoDB时出错

时间:2012-11-30 14:45:24

标签: java spring mongodb jodatime spring-data

今天我遇到了以下问题。当我将joda DateTime字段添加到我的某个域类时,我无法将此类的任何对象保存到我的MongoDB中。一段时间后抛出StackOverflowError,这似乎有某种循环。一旦我删除了该字段,一切正常。

我试过java mongo驱动程序2.9.3和2.10.0。数据绑定通过Spring-Data-Mongo 1.1.1.RELEASE进行。 Mongo版本是2.2.1。

要保留对象,我使用MongoTemplate#save。

User user = new User("user");
mongoTemplate.save(user, "users");

User类看起来像这样(为简单起见而剥离):

public final class User {

  private final String suid;
  private DateTime datetime = DateTime.now();

  public User(String suid) {
    this.suid = suid;
  }

  public String getSuid() {
    return suid;
  }
}

我尝试了几次网络搜索,但找不到其他人遇到此问题或任何提示如何处理joda时间。

对此的任何提示都将非常感激。

谢谢, 克里斯

2 个答案:

答案 0 :(得分:4)

StackOverflowError听起来像是should file的错误,如果它不是来自您的代码。 您是否尝试使用custom converter来解决此问题?

答案 1 :(得分:1)

它是Spring Data MongoDB中的一个错误,我在将JODA LocalTime插入数据库时​​遇到了相同的stackoverflow错误,但是当我切换到java LocalTime时,它工作正常。