我有一个User对象,其中包含CardInformation对象列表(其付款选项)。如果我同时创建一个新用户和新的CardInformation - 引用User数据库id的外键为null(这是有意义的,因为我没有持久保存该对象)。保存User对象时,我处于印象弹簧或者hibernate处理这个问题。如果不是 - 这是如何解决的?通过在CardInformation对象中设置用户模型引用?
我保持模型简单并删除大部分数据,以便轻松查看onetomany关系详情。
数据库中的CardInformation具有外键owner_id - 引用user_id列。
这些是我的模特 - 用户:
@Entity
@Table(name = "User")
public class UserPersistenceModel {
/** Table id reference. */
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id")
private Long id;
/** First name. */
@Column(name = "first_name")
private String firstName;
/** Email. */
@Column(name = "email", unique = true, nullable = false)
private String email;
/** List of users payment options. */
@OneToMany(mappedBy = "userPersistenceModel", cascade =
CascadeType.ALL, fetch = FetchType.LAZY)
private List<CardInformationPersistenceModel> cardInformationPersistenceModels;
加上所有吸气剂/安装者。
CardInformation模型:
@Entity
@Table(name = "CardInformation")
public class CardInformationPersistenceModel {
/** Unique db id. */
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "card_id")
private Long id;
/** Card Holder Full Name. */
@Column(name = "CardHolderName")
private String cardHolderName;
/**
* Many-1 reference to owner model.
*/
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "owner_id", nullable = false)
private UserPersistenceModel userPersistenceModel;
加上所有吸气剂/安装者等。
我收到的错误是 - owner_id在保存用户对象时为空