我正在开发的一个应用程序使用 Oracle 和 Hibernate 作为 ORM。当我尝试插入 PartyUserObject 时,我不断收到以下错误:
could not insert: [Person]; SQL [insert into PARTY (............)]; constraint [PARTY_FK1]
java.sql.SQLIntegrityConstraintViolationException: ORA-02291: integrity constraint (PARTY_FK1) violated - parent key not found
该消息似乎很明显,但我无法配置 Hibernate 以使其正常工作。相关实体的关系和hbm.xml文件如下:
PartyUser.java
private Party ap;
Party.java
private Address address;
private Set<PartyUser> partyUsers;
PartyUser.hbm.xml
<many-to-one
name="ap"
column="AP_ID"
class="Party"
not-null="true"
lazy="false"
cascade="save-update,evict">
</many-to-one>
Party.hbm.xml
<set name="partyUsers" inverse="true" fetch="subselect">
<key column="AP_ID"/>
<one-to-many class="PartyUser"/>
</set>
PARTY_FK1 指的是派对表中的地址 FK。正如我之前所说,在 DAO 上为新实例化的 PartyUser 对象调用 save (关联的 Party 和 Address 对象也是新的)。所有 id 都是在 java 端生成的。正如您可能注意到的那样,两个实体都打开了级联。
有什么想法有什么问题吗?