Eclipselink-@CascadeOnDelete在@OneToOne关系上不起作用 [英] Eclipselink - @CascadeOnDelete doesn't work on @OneToOne relations

查看:100
本文介绍了Eclipselink-@CascadeOnDelete在@OneToOne关系上不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我班上有两个关系:

@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,而不是mappingBy.但是我认为您是正确的,应该使用maptedBy检查映射.

请记录错误.

作为解决方法,您应该可以将其添加到两侧.

I have two relations in my class:

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

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

In my generated DDL (for postgres) I becomes:

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

Why the relation @OneToMany has the statement "ON DELETE CASCADE" and the relation @OneToOne has not?

Thanks in advance

解决方案

The current DDL generation code in EclipseLink seems to be check for the @CascadeOnDelete on the @OneToOne source, not the mappedBy. But I think you are correct, it should be checking the mapping using the mappedBy.

Please log a bug.

As a workaround you should be able to add it to both sides.

这篇关于Eclipselink-@CascadeOnDelete在@OneToOne关系上不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆