3

今天我遇到了以下问题。当我将 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 时间。

对此的任何提示将不胜感激。

谢谢,克里斯

4

2 回答 2

4

StackOverflowError 听起来像是一个错误,如果它不是来自您的代码,您应该提交它。您是否尝试过使用自定义转换器来解决此问题?

于 2012-11-30T16:13:05.203 回答
1

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

于 2015-06-03T20:12:15.040 回答