Java 值为零的Toplink外键

Java 值为零的Toplink外键,java,junit,oracle11g,foreign-key-relationship,toplink,Java,Junit,Oracle11g,Foreign Key Relationship,Toplink,我正在对一个应用程序进行现代化改造,该应用程序使用带有Toplink的Oracle 11g数据库 外键值为零的整数有问题 这个应用程序有点复杂,所以我创建了一个简单的项目,其中有一个两表数据库,Toplink的配置方式与应用程序和一些JUnit测试相同,以驱动一些简单的请求进入数据库。一个表(参与方)引用了另一个表(地址)。一个地址可以被多方使用。它在Toplink工作台中映射为一对多 在我尝试创建或更新引用id为零的地址的参与方之前,一切都正常。这会引发Toplink异常 注意。创建id为零的

我正在对一个应用程序进行现代化改造,该应用程序使用带有Toplink的Oracle 11g数据库

外键值为零的整数有问题

这个应用程序有点复杂,所以我创建了一个简单的项目,其中有一个两表数据库,Toplink的配置方式与应用程序和一些JUnit测试相同,以驱动一些简单的请求进入数据库。一个表(参与方)引用了另一个表(地址)。一个地址可以被多方使用。它在Toplink工作台中映射为一对多

在我尝试创建或更新引用id为零的地址的参与方之前,一切都正常。这会引发Toplink异常

注意。创建id为零的地址没有问题,创建或更新地址大于零的参与方也没有问题

以下是我在create上看到的例外情况:

    [TopLink Warning]: 2014.01.22 11:51:26.333--UnitOfWork(76409034)--        Thread(Thread[main,5,main])--Exception [TOPLINK-4002] (Oracle TopLink - 11g Release 1 (11.1.1.6.0) (Build 111018)): oracle.toplink.exceptions.DatabaseException
    Internal Exception: java.sql.SQLException: ORA-00001: unique constraint (PARTIES.ADR_PK) violated

    Error Code: 1
    Call: INSERT INTO PTY_ADDRESS (ADR_ID, ADR_STREET, ADR_COUNTRY, ADR_NAME, ADR_CITY) VALUES (?, ?, ?, ?, ?)
        bind => [0, street, country, venue, city]
    Query: InsertObjectQuery(ch.hp.parties.Address@2e931d05)
有什么想法吗


John D.

您是否检查过您是否有id为0的地址?是的,当然可以。我有JUnit测试驱动所有案例。你可以肯定,我在这件事上反复考虑了很多次。:-)