gpt4 book ai didi

java - Eclipselink - @CascadeOnDelete 不适用于 @OneToOne 关系

转载 作者:太空宇宙 更新时间:2023-11-04 07:45:58 25 4
gpt4 key购买 nike

我类有两个亲戚:

@OneToOne(mappedBy = "poi", cascade = { CascadeType.ALL })
@CascadeOnDelete
protected PoiDescription description;

@OneToMany(mappedBy = "poi", cascade = { CascadeType.ALL })
@CascadeOnDelete
protected List<PoiAdditional> additionals = new ArrayList<>();

在我生成的 DDL(针对 postgres)中,我变成:

ALTER TABLE POI_DESCRIPTION ADD CONSTRAINT FK_POI_DESCRIPTION_POI_ID FOREIGN KEY (POI_ID) REFERENCES POI (ID)
ALTER TABLE POI_ADDITIONAL ADD CONSTRAINT FK_POI_ADDITIONAL_POI_ID FOREIGN KEY (POI_ID) REFERENCES POI (ID) ON DELETE CASCADE

为什么关系@OneToMany 有语句“ON DELETE CASCADE”而关系@OneToOne 没有?

提前致谢

最佳答案

EclipseLink中当前的DDL生成代码似乎是检查@OneToOne源上的@CascadeOnDelete,而不是mappedBy。但我认为你是对的,应该使用mappedBy检查映射。

请记录错误。

作为解决方法,您应该能够将其添加到两侧。

关于java - Eclipselink - @CascadeOnDelete 不适用于 @OneToOne 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274428/

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