InvalidOwnerException错误

本文探讨了在使用Oracle ADFm开发master-detail关系应用程序时,遇到的InvalidOwnerException错误及其原因。详细解释了强连接关系导致的问题,并提供了通过修改实体关系属性来解决此问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用Oracle ADFm 来开发master-detail关系的应用程序过程中,当试图往detail行集对象中插入新行的时候报错误信息:

oracle.jbo.InvalidOwnerException: JBO-25030: Failed to find or invalidate owning entity

 

这个错误信息的产生原因是由于创建实体对象关系的时候,关系的属性设置为了强连接,意味着在主记录不存在的时候从纪录是不可能生成的,因此当王detail行集中插入新行的时候,由于它没有master纪录的上下文信息,所以报出找不到它的主实体。

 

对于在Oracle EBS环境下作过Form应用的开发人员对这点应该更加清楚,Form中数据块之间可以创建关系,关系上面有一个属性叫做:防止无主操作。它的意思就是当主记录不存在的时候,不能创建从纪录,就和上面的ADFm错误是一样的道理。

 

存在这样控制的目的是防止一些无效数据的产生,保证数据的有效性,正如我们常见的订单和订单行这样的关系中,如果订单都没有创建,何来订单行呢?因此需要来防止无效的订单行产生,基于这样的情况,Steve Muench也在他的博客中描述了如何来避免这样问题的发生:Why Do I Get the InvalidOwnerException?

 

而在另外一些情况下,由于特殊的情况,需要在没有主记录存在的时候来创建从纪录,即需要将主从关系变为一种弱连接,允许进行

无主操作。

 

这个时候只要修改创建的实体关系的属性,将Composition Association选项去除即可,如下图:

 

entity_association

 

本文转自Oracle Seeker:http://oracleseeker.com/2008/11/19/why_get_invalidownerexception_master_detail_rowset/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值