2017-10-10 7 views
1

表クライアント 名= "クライアント"HibernateのSessionFactoryの挿入、更新を構築することができません偽

@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

ドン」 insert(insertable = "false"、updateble = "false")と言ってください。私はそれを挿入すると、データベースや他のものからデータを読み取ることができないので。それは解決策ではありません。

同じデシベル列をマップしようとしているあなたは

@Column(length=40) 
private String clients; 

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

を持って

+0

それは同じ名前でマップされた2つの列を意味します。実際に2つのフィールドマッピングを同じカラムにしたいのであれば、 – soorapadman

+0

をチェックすることができますか?2つのマッピングの1つに挿入可能な更新可能なfalseを使用するか、または休止状態でどちらを使用するかを教えてください...しかし、あなたはエンティティ全体を投稿します。 – Zeromus

+0

私は編集した投稿を投稿しました。 bookedRoom.javaファイル全体をコピーしました。 – Hajrudin

答えて

0

(あなたが列マッピングのためのフィールド名を使用します休止状態、列名を指定しない場合)。 ..

実際に別の列であれば最初の列に別の名前を付けてください。insertable=false, updatable= falseを非関連付けのマッピングString clientsに追加するか削除してくださいその無意味なフィールドはすべて

+0

ありがとうございます!!!!!! – Hajrudin

関連する問題