2017-10-10 43 views
1

表客戶 NAME = 「客戶」無法建立的Hibernate SessionFactory的INSERT,UPDATE,假

@OneToMany(mappedBy="clientObj", fetch=FetchType.LAZY) 
private List<BookedRoom> bookedRooms; 

而且表預訂客房

@Id 
@GeneratedValue(strategy=GenerationType.IDENTITY) 
@Column(unique=true, nullable=false) 
private BigInteger id; 

@Column(name="accommodation") 
private BigInteger accommodation; 

@Column(name="account") 
private BigInteger account; 

@Column(length=40) 
private String clients; 

@Column(name="clients_id", length=40) 
private String clientsId; 

@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name="clients", nullable=false) 
@JsonBackReference 
private Client clientObj; 

@Column(name="rooms_no") 
private byte roomsNo; 

@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name="room", nullable=false) 
@JsonBackReference 
private AccommodationRoom accommodationRoom; 

@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name="bed_preference") 
@JsonBackReference 
private BedPreference bedPreferenceBean; 

@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name="booking", nullable=false) 
@JsonBackReference 
private Booking bookingBean; 

和錯誤:

Caused by: org.hibernate.MappingException: Repeated column in mapping for entity: ba.go2balkan.pojo.BookedRoom column: clients (should be mapped with insert="false" update="false") [java] at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:709) [java] at org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication(PersistentClass.java:731) [java] at org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:753) [java] at org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:506) [java] at org.hibernate.mapping.RootClass.validate(RootClass.java:270) [java] at org.hibernate.cfg.Configuration.validate(Configuration.java:1358) [java] at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1849) [java] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850) [java] ... 34 more

和Don」告訴我插入(insertable =「false」,updateble =「false」)。因爲當我插入,比我不能讀取數據庫或其他任何數據。這不是解決方案。

+0

它說重複的列意味着兩列映射相同的名稱。你能檢查 – soorapadman

+0

如果你真的想要兩個字段映射相同的列,那麼你必須在兩個映射之一上使用可插入的可更新false,或者hibernate不能告訴哪一個使用......但是,除非我們再次看不到你張貼了整個實體 – Zeromus

+0

我的編輯帖子。我複製了我的整個bookingRoom.java文件。 – Hajrudin

回答

0

你有

@Column(length=40) 
private String clients; 

@ManyToOne(fetch = FetchType.LAZY) 
@JoinColumn(name="clients", nullable=false) 
@JsonBackReference 
private Client clientObj; 

正試圖映射相同的數據庫列(如果你不指定列名,則Hibernate將使用字段名稱列映射)。 ..

要麼給第一個名稱不同,如果它實際上是另一個列,請在非關聯映射String clients上使用insertable=false, updatable= false或刪除那個毫無意義的領域

+0

謝謝!!!!!! – Hajrudin

相關問題