就我而言,有两张桌子。 这两个表都与用户名连接在一起。用户名是登录表中的主键和客户表中的外键。
我想使用hibernate save函数在这两个表中插入数据。当我第一次运行服务器并单击“保存”按钮时,它会毫无问题地向两个表插入数据。在再次向服务器发送相同的请求时,它会将数据插入Login表中,但它会使用with new data而不是insert来更新Customer表。
我不确定这里出了什么问题......
@Component
@Entity
@Table(name="login")
public class Login implements Serializable {
private static final long serialVersionUID = 1L;
// @Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="login_id")
private BigInteger loginId;
@Id
@Column(name="login_username")
private String loginUsername;
@OneToOne(mappedBy="login" ,cascade = CascadeType.ALL)
private Customer customer;
}
@Component
@Entity
//@Scope(value="request")
@Table(name="customer")
public class Customer implements Serializable {
private static final long serialVersionUID = 1L;
/* Define all the columns of Customer Table */
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="customer_id")
private BigInteger customerId;
@OneToOne(fetch=FetchType.LAZY)
@JoinColumn(name="customer_username",referencedColumnName="login_username")
private Login login;
}