2017-01-22 4 views
2

MongoDB 저장소를 사용하여 Javers를 설정하려고합니다. 나는 javers-corejavers-persistence-mongo 모두 버전 2.9.1을 사용하고 있습니다. 내가 부울 필드 엔티티를 저지하려고 할 때Javers MongoRepository throwing IllegalArgumentException 부울 JsonPrimitive

그러나, 다음과 같은 예외가 발생 :

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/DocumentConverter에서 private 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; 
    } 

답변