我正在使用带有Toplink的Oracle 11g数据库进行现代化。
我的外键有零值的问题。
应用程序有点复杂,所以我创建了一个带有两个表DB的简单项目,Toplink以与app相同的方式配置,一些JUnit测试将一些简单请求驱动到DB。一个表(Party)具有对另一个表(Address)的引用。许多缔约方可以使用地址。它在Toplink Workbench中被映射为一对多
一切正常,直到我尝试创建或更新引用ID为零的地址的Party。抛出Toplink异常。
NB。创建ID为零的地址没问题,创建或更新地址大于零的Party也没问题。
以下是我在创建中看到的例外:
[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.