2017-10-10 2 views
1

Tableau client Name = "clients"Impossible de construire insert SessionFactory Hibernate mise à jour faux

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

et table réservé une chambre

@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; 

Et erreur:

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

Et n » t dites-moi d'insérer (insertable = "false", updateble = "false"). Parce que quand je l'insère que je ne peux pas lire les données de la base de données ou toute autre chose. Ce n'est pas une solution.

+0

Il est dit colonne répétée signifie deux colonnes mappées avec le même nom. pouvez-vous vérifier – soorapadman

+0

si vous voulez réellement deux champs mappage de la même colonne, alors vous devez utiliser false modifiable insérable sur l'un des deux mappages ou Hibernate ne peut pas dire lequel utiliser ... mais encore une fois nous ne pouvons pas dire à moins vous publiez toutes les entités – Zeromus

+0

I v eddited post. J'ai copié tout mon fichier bookedRoom.java. – Hajrudin

Répondre

0

vous avez

@Column(length=40) 
private String clients; 

et

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

qui tentent de cartographier la même colonne db (si vous ne spécifiez pas le nom de la colonne puis mise en veille prolongée utilisera le nom du champ pour la cartographie de la colonne).

Soit donner un nom différent au premier s'il s'agit en fait d'une autre colonne, utilisez insertable=false, updatable= false sur le mappage de non association String clients ou supprimer Ce champ sans signification au total

+0

Merci !!!!!! – Hajrudin