日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解决:DuplicateMappingException: Table [xx] contains physical column name referred to by multiple ... .

發(fā)布時間:2023/12/18 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解决:DuplicateMappingException: Table [xx] contains physical column name referred to by multiple ... . 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前些天發(fā)現(xiàn)了一個巨牛的人工智能學(xué)習(xí)網(wǎng)站,通俗易懂,風(fēng)趣幽默,忍不住分享一下給大家。點擊跳轉(zhuǎn)到教程。

報錯如題:

Caused by: org.hibernate.DuplicateMappingException: Table [xxx] contains physical column name [comment] referred to by multiple physical column names: [comment], [auditComment]at org.hibernate.boot.internal.InFlightMetadataCollectorImpl$TableColumnNameBinding.bindPhysicalToLogical(InFlightMetadataCollectorImpl.java:922)at org.hibernate.boot.internal.InFlightMetadataCollectorImpl$TableColumnNameBinding.addBinding(InFlightMetadataCollectorImpl.java:891)at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.addColumnNameBinding(InFlightMetadataCollectorImpl.java:961)at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.addColumnNameBinding(InFlightMetadataCollectorImpl.java:942)at ... ...

?

情況1. 項目用的 spring-data-jpa 。

原本對于表和本類的每個字段都有給注解 @Colum 來對應(yīng),其實不用給也可以。把這些注解注釋掉工程就可以正常啟動了。

如下:

import org.codehaus.jackson.annotate.JsonIgnore; import org.codehaus.jackson.annotate.JsonIgnoreProperties; import org.codehaus.jackson.map.annotate.JsonSerialize;import javax.persistence.*; import java.io.Serializable; import java.util.Date;/*** 解凍申請*/ @Entity(name = "unfreeze") @Table(name = "unfreeze_apply") @JsonIgnoreProperties(ignoreUnknown = true) public class UnfreezeApply implements Serializable {private static final long serialVersionUID = -1826761763082698565L;@Id@GeneratedValue(strategy = GenerationType.AUTO)private Integer id;// @Column(name = "employee_no", nullable = false)private String employeeNo;@Transientprivate String employeeName; //員工名稱@ManyToOne(fetch = FetchType.EAGER)@JsonIgnore // @JoinColumn(name="employee_no", referencedColumnName="usernumber", insertable=false, updatable=false)private User employee;// @Column(name = "reason", nullable = false)private String reason;}

啟動成功:

?

情況2. (網(wǎng)上的其它情況)

?

當有一個物理表映射兩個或多個邏輯表名稱時,會發(fā)生此異常。如?因為那里有多個@JoinColumns使用相同的列名(user_id)

為每個JoinColumns(在注釋中的name參數(shù)中定義)設(shè)置一個不同的名稱:

@OneToOne @JoinColumn(name = "local_user_id") public User getUser() {return user; }@OneToOne @JoinColumns({@JoinColumn(name = "userId", referencedColumnName = "userId"),@JoinColumn(name = "providerId", referencedColumnName = "providerId"),@JoinColumn(name = "providerUserId", referencedColumnName = "providerUserId")} ) public UserConnection getUserConnection() {return userConnection; }

?

參考:http://mussatto.github.io/java/hibernate/error/fix/mapping/2016/11/14/hibernate-error-multiple-physical-columns.html

?

?

?

總結(jié)

以上是生活随笔為你收集整理的解决:DuplicateMappingException: Table [xx] contains physical column name referred to by multiple ... .的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。