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

問題來源

java.lang.IllegalStateException: Multiple representations of the same entity are being merged.

因爲試圖給 某一個newTransient對象 的某一個屬性賦一個 已經Persistent 對象或者Detached 對象值。導致最後save 或者merge 這個Transient對象報這個錯誤。

解決方式

hibernate

  1. hibernate的配置文件,添加以下內容:
<property name="hibernate.event.merge.entity_copy_observer">allow</property>
  1. 或者,hibernate更新爲4.2.15 以上版本
    Hibernate 自身的一個bug,詳情見官方解決

Spring

  1. spring的數據源中配置以下內容:
<prop key="hibernate.event.merge.entity_copy_observer">allow</prop>

SpringBoot

  1. application.properties文件添加以下內容
spring.jpa.properties.hibernate.event.merge.entity_copy_observer=allow
  1. application.yaml文件添加以下內容
spring:
    jpa:
        properties:
            hibernate:
                event:
                    merge.entity_copy_observer: allow
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章