首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javers为布尔JsonPrimitive抛出IllegalArgumentException

Javers为布尔JsonPrimitive抛出IllegalArgumentException
EN

Stack Overflow用户
提问于 2017-01-22 16:21:31
回答 1查看 267关注 0票数 2

我正在尝试使用MongoDB存储库来设置Javer。我正在为javers-corejavers-persistence-mongo使用2.9.1版本。

但是,当我尝试提交带有布尔字段的实体时,会引发以下异常:

代码语言:javascript
复制
java.lang.IllegalArgumentException: unsupported JsonElement type - JsonPrimitive
    at org.javers.repository.mongo.DocumentConverter.fromJsonElement(DocumentConverter.java:71) ~[javers-persistence-mongo-2.9.1.jar:?]
    at org.javers.repository.mongo.DocumentConverter.toDocument(DocumentConverter.java:20) ~[javers-persistence-mongo-2.9.1.jar:?]
    at org.javers.repository.mongo.DocumentConverter.fromJsonElement(DocumentConverter.java:39) ~[javers-persistence-mongo-2.9.1.jar:?]
    at org.javers.repository.mongo.DocumentConverter.toDocument(DocumentConverter.java:20) ~[javers-persistence-mongo-2.9.1.jar:?]
    at org.javers.repository.mongo.MongoRepository.writeToDBObject(MongoRepository.java:200) ~[javers-persistence-mongo-2.9.1.jar:?]
    at org.javers.repository.mongo.MongoRepository.persistSnapshots(MongoRepository.java:217) ~[javers-persistence-mongo-2.9.1.jar:?]
    at org.javers.repository.mongo.MongoRepository.persist(MongoRepository.java:74) ~[javers-persistence-mongo-2.9.1.jar:?]
    at org.javers.repository.api.JaversExtendedRepository.persist(JaversExtendedRepository.java:109) ~[javers-core-2.9.1.jar:?]
    at org.javers.core.JaversCore.commit(JaversCore.java:83) ~[javers-core-2.9.1.jar:?]
    at org.javers.core.JaversCore.commit(JaversCore.java:65) ~[javers-core-2.9.1.jar:?]

查看private static Object fromJsonElement(JsonElement jsonElement)方法在javers-persistence-mongo-2.9.1/DocumentConverter中,只有JsonPrimitives字符串和数字的转换方法(而不是布尔值)。

我是不是漏掉了什么配置?

MWE:

代码语言:javascript
复制
  public static void main(final String[] args) {
    final TestEntity testEntity = new TestEntity();
    testEntity.id = 12345L;
    testEntity.testBoolean = true;

    final MongoClient mongoClient = new MongoClient(...);
    final Javers javers = JaversBuilder.javers()
        .registerJaversRepository(new MongoRepository(mongoClient.getDatabase(...))).build();

    javers.commit("testAuthor", testEntity); // Throws IllegalArgumentException
  }

  @Entity
  static class TestEntity {

    @Id
    Long id;

    Boolean testBoolean;
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-23 20:42:32

这是在2.9.1中引入的一个bug。查看此问题中的错误修复进度,https://github.com/javers/javers/issues/494

(编辑) 2.9.2

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41793276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档