2017-01-22 7 views
2

MongoDBリポジトリを使用してJaversを設定しようとしています。私はjavers-corejavers-persistence-mongoの両方にバージョン2.9.1を使用しています。私は、ブールフィールドを持つエンティティをコミットしようとすると、Javers MongoRepository throw Boolean JsonPrimitiveのIllegalArgumentException

ただし、次の例外がスローされます。

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:?] 

javers-persistence-mongo-2.9.1/DocumentConverterprivate static Object fromJsonElement(JsonElement jsonElement)方法を見ると、JsonPrimitives文字列や数値のための唯一の変換方法があります(ブール値ではない)。

ここで設定が欠落していますか?

MWE:

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; 
    } 

答えて

関連する問題