Java 冬眠:我不知道';我不想删除孩子
我是意大利人,我为我的英语道歉 我有两个POJO类,它们在我的Db中表示父表和子表 家长。Persona.javaJava 冬眠:我不知道';我不想删除孩子,java,hibernate,jpa,hibernate-annotations,Java,Hibernate,Jpa,Hibernate Annotations,我是意大利人,我为我的英语道歉 我有两个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, null
@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
我使用注释在数据库中映射这些类
当我试图从数据库中删除一个角色时,hibernate会删除与该角色关联的Telefono,我不想要它。
我希望子引用在Telefono表中的persona_id字段中有一个空值,如何获得该结果?我应该使用什么注释?
谢谢大家。JPA不是魔术
按照@Andy Dufresne的建议,删除级联类型。删除注释。然后您必须在Telefono
中将Persona
设置为null
,并在从持久性上下文中删除Persona
之前清除Telefono
集合。因此,您必须删除所有关联
您甚至可以将其与注释结合使用。JPA不是魔术
按照@Andy Dufresne的建议,删除级联类型。删除注释。然后您必须在Telefono
中将Persona
设置为null
,并在从持久性上下文中删除Persona
之前清除Telefono
集合。因此,您必须删除所有关联
您甚至可以将其与注释结合使用。如果从@ManyToOne的映射中删除CascadeType.remove,则不应删除子项。你试过了吗?谢谢你的回答。。。是的,我尝试了这个方法,但是在这种情况下,没有任何东西会被删除。如果从@ManyToOne的映射中删除CascadeType.remove,它就不会删除子对象。你试过了吗?谢谢你的回答。。。是的,我尝试了这个方法,但在这种情况下,如果我将Persona设置为null,则不会删除任何内容,然后再从数据库中删除记录,并删除一个CascaType。删除记录会被更新,但不会被删除…哪个记录?这样一来,电话号码应该被更新,人物角色应该被删除。你必须消除双方的联系,我解决了。我将关联的子端设置为null,然后从数据库中删除实体。那很好。谢谢大家。如果我将Persona设置为null,那么在从数据库中删除记录之前,请先删除一个CascaType。删除记录会被更新,但不会被删除…哪个记录?这样一来,电话号码应该被更新,人物角色应该被删除。你必须消除双方的联系,我解决了。我将关联的子端设置为null,然后从数据库中删除实体。那很好。谢谢大家。
@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