无法构建Hibernate SessionFactory插入更新false

时间:2017-10-10 15:05:12

标签: java hibernate

表客户端 名称="客户"

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

错误:

  

引起:org.hibernate.MappingException:映射中的重复列   实体:ba.go2balkan.pojo.BookedRoom专栏:客户(应该是   用insert =&#34; false&#34;映射更新=&#34;假&#34)        [java] org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:709)        [java] org.hibernate.mapping.PersistentClass.checkPropertyColumnDuplication(PersistentClass.java:731)        [java] org.hibernate.mapping.PersistentClass.checkColumnDuplication(PersistentClass.java:753)        [java] org.hibernate.mapping.PersistentClass.validate(PersistentClass.java:506)        [java] org.hibernate.mapping.RootClass.validate(RootClass.java:270)        [java] org.hibernate.cfg.Configuration.validate(Configuration.java:1358)        [java] org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1849)        [java] at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl $ 4.perform(EntityManagerFactoryBuilderImpl.java:850)        [java] ... 34更多

并且不要告诉我插入(insertable =&#34; false&#34;,updateble =&#34; false&#34;)。因为当我插入时,我无法从数据库或其他任何东西读取数据。那不是解决方案。

1 个答案:

答案 0 :(得分:0)

你有

@Column(length=40)
private String clients;

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

试图映射相同的db列(如果你没有指定列名,那么hibernate将使用字段名来进行列映射)......

如果它实际上是另一列,则为第一列提供不同的名称,在非关联映射insertable=false, updatable= false上使用String clients或完全删除无意义的字段