java–Hibernate删除一条记录,但记录不会消失?

java–Hibernate删除一条记录,但记录不会消失?,第1张

概述编辑:哎呀,我想如果我发布删除代码会有所帮助.抱歉. // delete from permanent store and local list int index = get_record_to_delete(); if (entityList.getEntities().get(index).getEntityId() != nul

编辑:哎呀,我想如果我发布删除代码会有所帮助.抱歉.

    // delete from permanent store and local List    int index = get_record_to_delete();    if (entityList.getEntitIEs().get(index).getEntityID() != null ) {        // existing persisted record        entityService.delete(entityInfo.getEntitIEs().get(index).getEntityID());    }    //remove from local List    entityList.getEntitIEs().remove(index);    return ownersInfo;    // entityService called by above code    public voID delete(MyEntity entity)  {        repository.delete(entity);  // subclass of org.springframework.data.jpa.repository.JpaRepository    }

我正在使用Spring Data / JPA V 1.4.2.RELEASE和hibernate 3.6.10.Final.

我有一种情况,我正在删除一个实体,删除似乎工作,但当我刷新我的网页时,实体重新出现.因此,它不会产生错误,但记录不会被删除.

该实体包含其中的子实体.我怀疑某种实体依赖问题是让实体不被真正“删除”,但我不知道它可能是哪种实体依赖,而Hibernate没有告诉我.包含的实体是否被删除无关紧要,但需要删除此实体.不知道为什么没有发生这种情况.这是我要删除的实体:

public class MyEntity implements java.io.Serializable {    @ID    @GeneratedValue    @Column(name = "MYID",unique = true,nullable = false)    private Long myID;    @Column(name = "MY_name",nullable = false,length = 50)    private String myname;    @ManyToOne    @JoinColumn(name = "ADDRESS_ID",nullable = false)    private AddressEntity myAddress;    @ManyToOne    @JoinColumn(name = "OTHER_ADDRESS_ID",nullable = true)    private AddressEntity myOtherAddress;    @ManyToOne    @JoinColumn(name = "TYPE_CODE",nullable = false)    private MyType myType;    @ManyToOne    @JoinColumn(name = "ADDRESS_CODE",nullable = false)    private AddressCode addressCode;    @Column(name = "OTHER",precision = 3,scale = 0)    private Integer myOther;    @ManyToOne    @JoinColumn(name = "PARENT_ID",nullable = false)    private MyParent parent;    @Column(name = "PHONE",precision = 10,scale = 0)    private Long myPhone;    @Column(name = "SOCIAL",length = 9)    private String mySocial;}

任何人都可以看到任何可能暗示为什么这个实体不会删除?最佳答案结果证明是Hibernate @OnetoMany注释取消删除的情况.

因为父对象上有一个@OnetoMany(cascade = CascadeType.ALL)注释,如下所示:

Class MyParent {    @OnetoMany(cascade=CascadeType.ALL)    Set

Hibernate显然遍历整个对象图,由于某种原因,因为这个父级没有被删除,所以它取消了子删除.

要检测到这一点的方法是将日志记录一直转到TRACE并从Hibernate查找以下消息:

un-scheduling entity deletion

这些是让你知道Hibernate取消删除的神奇词汇.这没有特别好记录,所以我希望这有助于其他人. 总结

以上是内存溢出为你收集整理的java – Hibernate删除一条记录,但记录不会消失?全部内容,希望文章能够帮你解决java – Hibernate删除一条记录,但记录不会消失?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1242900.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-06
下一篇2022-06-06

发表评论

登录后才能评论

评论列表(0条)