我的用戶與我的地址表是一對一的映射,它在用戶表中有一個地址的外鍵。我想洗掉用戶地址而不洗掉我的用戶,但是由于我在用戶表中有外鍵,所以我不能這樣做,請幫我在這里輸入影像描述
@Table(name = "Address") 公共類地址 {
@Id
@GeneratedValue
private Integer addressId;
@NotNull(message="City should not be null")
@Pattern(regexp="^[a-zA-Z] $" ,message="City should contain only alphabets")
private String city;
@NotNull(message="State should not be null")
@Pattern(regexp="^[a-zA-Z] $" ,message="State should contain only alphabets")
private String state;
@NotNull(message="Pincode should not be null")
@Size(min=6,max=6,message = "Size must be of 6 elements")
@Pattern(regexp="\\d ", message = "Pincode must contain only numbers")
private String pinCode;
@NotNull(message="House number should not be null")
@Pattern(regexp="\\d ", message = "Pincode must contain only numbers")
private String houseNo;
@NotNull(message="Landmark should not be null")
private String landmark;
我的用戶類
@Entity
@Table(name = "UserDetails") public class User { public enum Role{ADMIN,USER};`` @Id @GeneratedValue private Integer userId;
@NotNull(message = "Firstname should not be null")
@Pattern(regexp="^[a-zA-Z '.-]*$", message = "Name should be alphabetic")
private String firstName;
@NotNull(message = "Firstname should not be null")
@Pattern(regexp="^[a-zA-Z '.-]*$", message = "Name should be alphabetic")
private String lastName;
@Email
private String email;
private String password;
private Role role;
@OneToOne(cascade = CascadeType.ALL)
private Address address;
@OneToMany(mappedBy = "userDetails", cascade = CascadeType.ALL)
private Set<Order> orders = new HashSet<Order>();
private Address address;
@OneToMany(mappedBy = "userDetails", cascade = CascadeType.ALL)
private Set<Order> orders = new HashSet<Order>();
uj5u.com熱心網友回復:
堅持沒有作業?如果你想看看這里。
@OneToOne(cascade = CascadeType.PERSIST)
private Address address;
uj5u.com熱心網友回復:
嘗試添加orphanRemoval=true只是為了安全。
@OneToOne(cascade = CascadeType.ALL, orphanRemoval=true)
private Address address;
然后您應該可以通過將欄位的值設定為 null 來洗掉地址,例如:
User user = userRepository.getById(1);
user.setAddress(null);
userRepository.save(user);
uj5u.com熱心網友回復:
您收到的錯誤資訊是什么?在資料庫級別,您的外鍵“on delete set null”選項也需要設定。
洗掉時設定 null
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/444347.html
