【发布时间】:2017-10-10 15:05:12
【问题描述】:
表客户端 名称="客户"
@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="false" update="false") [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] 在 org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl$4.perform(EntityManagerFactoryBuilderImpl.java:850) [java] ... 34 更多
而且不要告诉我插入 (insertable="false", updateble="false")。因为当我插入它时,我无法从数据库或其他任何东西中读取数据。这不是解决方案。
【问题讨论】:
-
它说重复的列是指用相同的名称映射的两列。你能检查一下吗
-
如果你真的想要两个字段映射同一个列,那么你必须在两个映射之一上使用可插入的可更新的 false 或者休眠不能告诉使用哪一个......但是我们可以再次除非您发布整个实体,否则不会告诉您
-
我编辑了帖子。我复制了整个bookedRoom.java 文件。