Java 为什么jpa2/eclipselink不在delete级联SQL上生成?

Java 为什么jpa2/eclipselink不在delete级联SQL上生成?,java,orm,jpa,eclipselink,jpa-2.0,Java,Orm,Jpa,Eclipselink,Jpa 2.0,@实体 公共类MUser实现了可序列化的memonentity{ private static final long serialVersionUID = 1L; @Id private String email; @OneToMany(cascade=CascadeType.ALL, orphanRemoval=true) private Set<Meaning> mengs = new HashSet<Meaning>(); 我试图让删除一个缪斯会删除所有与之相关

@实体 公共类MUser实现了可序列化的memonentity{

private static final long serialVersionUID = 1L;
@Id
private String email;

@OneToMany(cascade=CascadeType.ALL, orphanRemoval=true)
private Set<Meaning> mengs = new HashSet<Meaning>();
我试图让删除一个缪斯会删除所有与之相关的意义

为什么jpa2/eclipselink不在delete级联SQL上生成

因为事情不是这样的。指定
cascade=REMOVE
意味着
REMOVE
操作将由JPA提供者级联到实体,而不是在数据库级别使用约束

某些提供程序确实具有在数据库级别使用级联删除约束而不是常规机制的扩展。例如,对于Hibernate,您可以指定:

@OnDelete(action=OnDeleteAction.CASCADE)
在连接的子类上:在删除时使用SQL级联删除,而不是常规的Hibernate机制

但我不知道EclipseLink是否有类似的东西

工具书类
  • JPA2.0规范
    • 第3.2.3节“拆除”
  • Hibernate注释参考指南
  CREATE TABLE MUSER_MEANING (MUser_EMAIL VARCHAR(255) NOT NULL, mengs_OBJID INTEGER NOT NULL, PRIMARY KEY (MUser_EMAIL, mengs_OBJID))
CREATE TABLE MUSER_MEANING (MUser_EMAIL VARCHAR(255) NOT NULL, mengs_OBJID INTEGER NOT NULL, PRIMARY KEY (MUser_EMAIL, mengs_OBJID))
ALTER TABLE MEANING ADD CONSTRAINT MEANING_USR_EMAIL FOREIGN KEY (USR_EMAIL) REFERENCES MUSER (EMAIL)
ALTER TABLE MUSER_MEANING ADD CONSTRAINT MSRMEANINGMsrEMAIL FOREIGN KEY (MUser_EMAIL) REFERENCES MUSER (EMAIL)