1. 程式人生 > >Multiple representations of the same entity are being merged解決方案

Multiple representations of the same entity are being merged解決方案

在此記錄一下,專案中出現的問題:

Multiple representations of the same entity are being merged

顧名思義:當出現問題的時候,先考慮出現問題的原因,以及發生的場景,還原當時的面貌,這是一個偵探該有的逼格,


真相只有一個。

        迴歸正題:不扯淡蛋了,根據經驗,首先我想到的,元素重複merge了,但是問題來了,如果元素重複merge就會造成錯誤嗎,不就是重複更新一下就行了,不至於出錯誤吧,但是眼見為實,耳聽為虛,我balabala google,發現一個網站,此網站https://hibernate.atlassian.net/browse/HHH-9106 給出了結論:看圖識字


此為hibernate一個嚴重bug,此bug已經在4.2.15版本中解決了,下面說幾種現實用法

 在hibernate的配置檔案中新增如下屬性:

<property name="hibernate.event.merge.entity_copy_observer">allow</property>
  • 1

如果使用的Spring 管理hibernate, 在你的spring的資料來源中配置

<prop key="hibernate.event.merge.entity_copy_observer">allow</prop>

如果使用的Spring-data-jpa管理hibernate, 在你的yaml中配置

jpa:
  properties:
    hibernate:
# 解決單元測試中的 LAZY on session 問題
enable_lazy_load_no_trans: true
      # 解決hibernate multiple merge問題
      event:
        merge:
          entity_copy_observer: allow

在此寫下,忘君謹記。