我有一个非常简单的问题。我不知道我是否不懂某事,或者不知道该怎么做。
我一直想知道冬眠时如何一对一。我可以从两个方向到达桌子。
假设我有Hotel和hotelDetails表。
正在为我创建一个密钥,这样我就可以从酒店到达hotelRating,但是我不能走另一条路。
有时候这对我很重要。
我将使用示例代码。
public class Hotel {
private Long id;
private String name;
private String currency;
private String image;
private HotelRating hotelRating;
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
.
.
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "hotel_rating_id", referencedColumnName = "id")
public HotelRating getHotelRating() {
return hotelRating;
}
public void setHotelRating(HotelRating hotelRating) {
this.hotelRating = hotelRating;
}
酒店评分表。
问题是,当我试图允许吸气剂和二传手做旅馆时。我得到了:
org.springframework.beans.factory.BeanCreationException:创建在类路径资源[org / springframework / boot / autoconfigure / orm / jpa / HibernateJpaConfiguration.class]中定义的名称为'entityManagerFactory'的bean时出错:调用init方法失败;嵌套的异常是javax.persistence.PersistenceException:[PersistenceUnit:默认]无法构建Hibernate SessionFactory。嵌套的异常是org.hibernate.MappingException:无法确定com.flightradar.flightradar.model.hotel.Hotel的类型,在表:hotel_rating上,对于列:[org.hibernate.mapping.Column(hotel)]
@Entity
@Table(name = "hotel_rating")
public class HotelRating {
private long id;
private Integer votesNumber;
@Min(1)
@Max(5)
private Double average;
@OneToOne(mappedBy = "hotel_rating")
Hotel hotel;
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public Integer getVotesNumber() {
return votesNumber;
}
public void setVotesNumber(Integer votesNumber) {
this.votesNumber = votesNumber;
}
public Double getAverage() {
return average;
}
public void setAverage(Double average) {
this.average = average;
}
}
因此,伙计们帮助我了解了从HotelRating Table前往Hotel table的最简单方法。
例如,我有HotelRating列表,并且必须从Hotel表中获取每个hotelRanking对象。
最佳答案
HotelRating
类中的“ mappedBy”值必须提供
拥有关系的字段。
在您的示例中,值为“ hotel_rating”
@OneToOne(mappedBy = "hotel_rating")
Hotel hotel;
但类
Hotel
中没有此类字段。相应的字段可能是“ hotelRating”。