2017-10-11 122 views
0

我有這樣的問題,即,如果一個複合的屬性爲null(注意這不是ID),Javers拋出一個異常:Javers拋出異常時屬性爲null

JaversException PROPERTY_ACCESS_ERROR: error getting value from property 'Method User getPersonEntity; //declared in: HibernateProxy_$$_javassist_356' on target object of type 'HibernateProxy_$$_javassist_356', cause: java.lang.reflect.InvocationTargetException: null 

JaversException PROPERTY_ACCESS_ERROR: error getting value from property 'Method List getAddress; //declared in: ... **Object property of the audited object**, cause: java.lang.reflect.InvocationTargetException: null 

因此,想象下面的結構:

用戶包含人,其中包含地址 - 具有自己的屬性的所有對象。

如果我提交了一個User對象,如果Person或Address有一個null屬性,那麼Javers會因上述錯誤而失敗。

Javers如何處理空屬性?它可以被配置爲不記錄一個空屬性或將其記錄爲空?當一個屬性爲空時,我看不到它應該拋出異常的原因?!似乎沒有關於如何處理空屬性的任何文檔。

回答

1

JaVers處理空值沒有任何問題,但你的getter沒有返回null,但拋出異常。 似乎你的對象是一個Hibernate動態代理,並且不能被初始化。

+0

自從Hibernate Session仍然打開後,發生這種情況有點奇怪。它應該可以在沒有問題的情況下延遲加載對象。 JaVers錯誤也沒有給我多少信息,只是該屬性爲空。所以目前還不清楚究竟發生了什麼。有沒有辦法啓用JaVers的調試級別日誌記錄以查看有關發生的更多信息? – Stef

+0

JaVers說「PROPERTY_ACCESS_ERROR錯誤從屬性獲取值」,這是真的。你的getter拋出一個異常,你應該面對它:) –

+1

嘗試Hibernate的unproxy鉤子,請參閱https://javers.org/documentation/spring-integration/#hibernate-unproxy-hook –

相關問題