【发布时间】:2014-03-29 11:21:51
【问题描述】:
我目前正在开发一个 java ee 应用程序,但我遇到了 JPA 问题。 我有两个实体:
@Entitiy
public class Restaurant implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Desk> desks;
}
@Entitiy
public class Desk implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne
@JoinColumn(name = "restaurant_id")
private Restaurant restaurant;
}
我正在使用以下代码存储桌子:
Desk desk = new Desk();
desk.setNumber(Integer.toString(x));
desk.setRestaurant(restaurant);
em.persist(desk);
但是现在奇怪的是,实体餐厅的桌子列表是空的,但实体桌子中的餐厅值是正确的。 数据库 shema 如下所示:
RESTAURANT (ID)
DESK (ID, RESTAURANT_ID)
RESTAURANT_DESK (RESTAURANT_ID, DESK_ID)
表 RESTAURANT_DESK 始终为空。为什么会生成第三张表?还有为什么实体餐厅的桌子列表是空的?
【问题讨论】:
标签: java jpa entity-relationship bidirectional