2016-04-03 170 views
0

enter image description here加入三個表(休眠註釋異常,一對多,的mappedBy)

我不能加入三個表。看到上面的圖片。正如你所看到的,每個餐廳都可以有很多餐桌,每個餐桌都可以有很多預訂。

餐廳實體:

@Entity 
@Table(name = "restaurant") 
public class Restaurant { 

    @Id 
    @Column(name = "id") 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long id; 
    @Column(name = "name") 
    private String name; 
    @Column(name = "aadress") 
    private String aadress; 

    @OneToMany(mappedBy = "restaurant") 
    private List<RestaurantTable> restaurantTables; 
} 

RestaurantTable實體:

@Entity 
@Table(name = "restaurant_table") 
public class RestaurantTable { 

    @Id 
    @Column(name = "id") 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long id; 

    @ManyToOne 
    @JoinColumn(name = "restaurant_id") 
    private Restaurant restaurant; 

    @Column(name = "number") 
    private int number; 
    @Column(name = "count") 
    private int count; 

    @OneToMany(mappedBy = "restaurant_table") 
    private List<Booking> bookings; 
} 

預定實體:

@Entity 
@Table(name = "booking") 
public class Booking { 

    @Id 
    @Column(name = "id") 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long id; 

    @ManyToOne 
    @JoinColumn(name = "restaurant_table_id") 
    private RestaurantTable restaurantTable; 

    ... 
} 

休眠註釋異常:

org.hibernate.AnnotationException: mappedBy reference an unknown target entity property: Booking.restaurant in RestaurantTable.bookings 

任何幫助表示讚賞!

回答

1

在RestaurantTable

@OneToMany(mappedBy = "restaurant_table") 
private List<Booking> bookings; 

你是指物業的預訂#restaurant_table,但在預定實體類這個屬性被命名爲restaurantTable

@ManyToOne 
@JoinColumn(name = "restaurant_table_id") 
private RestaurantTable restaurantTable; 

變化實體餐廳表

@OneToMany(mappedBy = "restaurantTable")