[ 
https://issues.apache.org/cayenne/browse/CAY-1009?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12788#action_12788
 ] 

Kevin Menard commented on CAY-1009:
-----------------------------------

Replacing the aforementioned check with

if (target.isSubentityOf((ObjEntity) rel.getTargetEntity()))

seems to take care of the issue.  I have some local test failues in the 
CAY_207Test, however, that are confounding the issue a little bit.

If the above check does work, we'll probably want to move it down a bit since 
it could be a costly operation and is likely to be the exception rather than 
the rule.

> Bogus runtime relationships can mess up commit.
> -----------------------------------------------
>
>                 Key: CAY-1009
>                 URL: https://issues.apache.org/cayenne/browse/CAY-1009
>             Project: Cayenne
>          Issue Type: Bug
>          Components: Cayenne Core Library
>    Affects Versions: 3.0
>            Reporter: Kevin Menard
>            Assignee: Andrus Adamchik
>
> I'm still the process of investigating this one, so more details to come.  
> Basically what I'm seeing is that if two ObjRels map to the same DbRel 
> somehow and only one is mapped explicitly, the runtime one can fail 
> validation while the specified one passes.  I'm observing this in a 
> relationship that involves inheritance.  It looks like I've explicitly mapped 
> an ObjRel for the subclass type and Cayenne is creating one for the base 
> class.  The DbAttr is marked as required.  Since I never specify a value in 
> the runtime relationship, since it's not mapped or useful to me, validation 
> fails.  If I don't mark the attribute as mandatory, everything commits just 
> fine.  So, I suspect Cayenne resolves the conflict somewhere down the line.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to