【发布时间】:2014-12-21 14:11:57
【问题描述】:
我是意大利人,我为我的英语道歉。
我有两个 POJO 类,它们在我的 Db 中表示父表和子表。
父母。 Persona.java
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "nome", length = 30, nullable = false)
private String nome;
@Column(name = "cognome", length = 30, nullable = false)
private String cognome;
@Column(name = "eta")
private int eta;
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.REFRESH}, mappedBy = "persona", orphanRemoval = false)
@Column(nullable = true)
private List<Telefono> numeriDiTelefono;
// Others getters and setters
孩子。 Telefono.java
@Id
@Column(name = "numero_telefono")
private String numeroDiTelefono;
@Column(name = "tipo")
private String tipo;
@ManyToOne(cascade = {CascadeType.REMOVE, CascadeType.PERSIST })
@JoinColumn(name = "persona_id", nullable = true)
private Persona persona;
// Others getters and setters
我已经使用注释来映射数据库中的这些类。
当我尝试从数据库中删除 Persona 时,休眠删除与该 Persona 关联的 Telefono,我不想要它。 我希望子引用在 Telefono 表中的 persona_id 字段中具有空值,如何获得该结果?我应该使用哪些注释? 谢谢大家。
【问题讨论】:
-
如果您从@ManyToOne 的映射中删除 CascadeType.REMOVE,它不应该删除子级。你试过了吗?
-
感谢您的回答...是的,我尝试了这个东西,但在这种情况下,没有任何内容被删除
标签: java hibernate jpa hibernate-annotations