2013-04-26 72 views
2

我使用JPA與Hibernate作爲我的提供者。Hibernate日誌髒實體屬性?

我有一個實體被標記爲髒的情況,我不知道爲什麼。是否有可以打開的記錄器將打印爲什麼實體被標記爲髒?換句話說,實體上的哪些屬性已經改變,導致它被標記爲髒?

我正在使用SLF4j和logback進行日誌記錄。我已經能夠迄今爲止找到的最好的是

<logger name="org.hibernate.persister.entity.AbstractEntityPersister" level="trace" /> 

哪位能給我登錄下面的語句:

26-Apr-2013 09:24:50.054 [SimpleAsyncTaskExecutor-8] TRACE o.h.p.entity.AbstractEntityPersister - com.example.MyEntity.myEntityProperty is dirty 

但它也包括了相當大量的其他跟蹤語句的,我會而不是記錄。

回答

0

發現一個工作,如果不是因爲什麼似乎是在Hibernate代碼中的錯誤。

org.hibernate.event.internal.DefaultFlushEntityEventListener.logDirtyProperties(Serializable, int[], EntityPersister) 

這種方法是非常正是我要找的,並就org.hibernate.event.internal.DefaultFlushEntityEventListener具有非常小的影響轉彎痕跡。使用上跟蹤不幸的​​是轉彎:

<logger name="org.hibernate.event.internal.DefaultFlushEntityEventListener" level="trace" /> 

導致日誌消息是這樣的:

26-Apr-2013 09:51:33.370 [SimpleAsyncTaskExecutor-8] TRACE o.h.e.i.DefaultFlushEntityEventListener - Found dirty properties [[com.example.MyEntity#1]] : [Ljava.lang.String;@221c75 
26-Apr-2013 09:51:33.370 [SimpleAsyncTaskExecutor-8] TRACE o.h.e.i.DefaultFlushEntityEventListener - Updating entity: [com.example.MyEntity#1] 

的問題在於[Ljava.lang.String;@221c75應該是屬性名稱的列表。

相關問題