2016-09-28 52 views
0

我的要求是,爲了應用程序審計目的,我想比較兩個BO對象,並返回一個obj diff作爲Json字符串將詳細信息存儲到審計表中。要比較對象,我選擇了Javers。在我的情況我已經實施了休眠攔截器將監視BO actions.That部分工作fine.But時嘗試比較BO與Javers對象扔我一個錯誤稱爲如何比較使用Javers的休眠BO對象

ENTITY_INSTANCE_WITH_NULL_ID: Found Entity instance 'com.myproject.runtime.bo.Result_$$_jvstc5f_5' with null idProperty 'resultid' 

這裏是我的樣品休眠結果類

class Result { 

    @id //javax.persistence.Id 
    resultid; 
    name; 
    etc ... 
    } 

的OBJ比較代碼段

public static <B> String compareObjDiff(final B oldBo, final B newBo) { 

     Javers javers = JaversBuilder.javers().build(); 

     Diff diff = javers.compare(oldBo, newBo); 
     return javers.getJsonConverter().toJson(diff); 
    } 

請讓我知道如何比較使用javers.also的hibernate BO對象是否可以忽略@id屬性?

注意:Bo對象在運行時可以包含null值。

回答