0
我已经谁拥有许多对象春天JPA标识空
@Entity
public class Lodger implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long lodgerId;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "lodger")
private List<IdentityCard> identityCardList;
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "lodger")
private List<Phone> phoneList;
...
}
@Entity
public class IdentityCard {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long identityCardId;
private String identyCardValue;
@OneToOne
@JoinColumn(name = "identity_card_type_id") //without -> identity_card_type_identityCardTypeId
private IdentityCardType identityCardType;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "lodger_id")
private Lodger lodger;
}
当我救我的房客的实体,我所有的对象被保存(identiyCard,电话),但他们的字段lodger_id为空。
我想这应该是在我们使用cascadeType.all时自动完成的。
另一种可能性是什么? –
@roberttrudel这是做到一对多双向关联的方法。如果您希望Lodger中的所有者一方,您可以尝试一种“解决方法”:使用多对多而不是一对多/多对一,在Phone和IdentCard中设置mappedBy,并且您应该添加其他控件将这些实体关联到一个Lodger(例如通过连接表的Phone的id字段的唯一检查约束) – Guillermo