【发布时间】:2021-07-04 00:59:24
【问题描述】:
我在 spring data JPA 中使用 OneToOne 并且我想从 Address 表中删除一条记录而不触摸用户。但我做不到。
如果我删除 User,在这种情况下 Address 会被删除,这很好。
但是如何在不触及 User 的情况下删除 Address 呢?
https://github.com/myTestPercon/TestCascade
User.Java
@Entity
@Table(name = "user", schema = "testCascade")
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
@OneToOne(mappedBy = "user", cascade = CascadeType.ALL)
private Address address;
// Getter and Setter ...
}
Address.java
@Entity
@Table(name = "address", schema = "testCascade")
public class Address implements Serializable {
@Id
private Long id;
@Column(name = "city")
private String city;
@OneToOne
@MapsId
@JoinColumn(name = "id")
private User user;
// Getter and Setter ...
}
删除控制器.java
@Controller
public class DeleteController {
@Autowired
ServiceJpa serviceJpa;
@GetMapping(value = "/deleteAddressById")
public String deleteAddressById () {
serviceJpa.deleteAddressById(4L);
return "redirect:/home";
}
}
【问题讨论】:
标签: spring hibernate spring-data-jpa spring-data hibernate-mapping