gpt4 book ai didi

java - Eclipse 链接替代 @PreUpdate 注释?

转载 作者:行者123 更新时间:2023-12-01 15:26:14 25 4
gpt4 key购买 nike

我一直在研究实体、oneToMany 关系,问题是每当我使用它时:

//Parent class    

@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE}, fetch = FetchType.EAGER,
targetEntity = FeedbackCategory.class, mappedBy = "parent")
@PrivateOwned
@OrderBy("category ASC")
private List<Child> children;

//... other code here, i.e. getters-setters

@PrePersist
@PreUpdate
void prePersistUpdate() {

// set the foreign key of child to this.ID
if(children != null && !children.isEmpty())
{
for(Child ch: children)
{
ch.setParent(this);
}
}
}

更新 Parent.class 时,特别是在彻底更新实体时,Parent 的 Id 不会与子实体一起保存(作为外键)。请帮忙...

看来 @PreUpdate 不起作用,@PrePersist 完全起作用。

最佳答案

一般来说,正确维护您的模型会更好。

添加一个 addChild() 方法,用于添加子级并设置父级。那么你的模型就不会被损坏。

@PreUpdate 在提交过程的后期发生(在确定需要更新对象之后)。我认为没有更早的 JPA 事件,但您可以使用 EclipseLink PreWrite 事件。为此,您需要使用 DescriptorEventListener,它的配置方式与 EntityListener 相同。

关于java - Eclipse 链接替代 @PreUpdate 注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10101678/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com