[ 
https://issues.apache.org/jira/browse/JDO-526?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12529260
 ] 

Craig Russell commented on JDO-526:
-----------------------------------

Good point, Ilan. Currently the description of the behavior is only in section 
15.3 which is in the ORM chapter. And the mapped-by attribute appears in the 
orm xsd and dtd, by which you might infer that the feature is an ORM feature 
not an object model feature.

This is an item that should be decided by the JDO Expert Group. I think we have 
a choice:

A) Make the relationship management behavior datastore-independent; that is, 
require the behavior for all datastores. In this case, we should put the 
managed relationship behavior description in Chapter 18 and point the Chapter 
15 information at it; remove mapped-by attributed from the orm; and leave the 
tck tests alone.

B) Make the relationship management behavior specific to relational 
implementations. In this case, we should add an optional feature (or reuse one 
of the existing javax.jdo.option.query.SQL or 
javax.jdo.option.GetJDBCConnection) to indicate that the implementation 
supports managing mapped-by relationships; and update the tck tests to check 
for the option before running the tests.

I have seen people writing applications assume that relationship management was 
an object model feature. I had the objective when writing the specification 
that it would be an object model description and required by all 
implementations. But the placement in the specification might have led the 
reader to believe it's only an RDBMS feature.

> Implementation fails to set other side of relationship on flush()
> -----------------------------------------------------------------
>
>                 Key: JDO-526
>                 URL: https://issues.apache.org/jira/browse/JDO-526
>             Project: JDO
>          Issue Type: Bug
>          Components: tck2
>    Affects Versions: JDO 2 maintenance release 1
>            Reporter: Michelle Caisse
>            Assignee: Andy Jefferson
>             Fix For: JDO 2 maintenance release 1
>
>
> Some tests for managed relationships fail because after the test sets one 
> side of the relationship, the implementation fails to set the other side on 
> flush().  For example:
> testSetToNewFromMappedSide(org.apache.jdo.tck.mapping.Relationship1To1NoRelationships)junit.framework.AssertionFailedError:
>  
> Assertion A15-3.1 (Relationship1To1NoRelationships) failed: 
> testSetToNewFromMappedSide: Postcondition is false; other side of 
> relationship not set on flush
>       at org.apache.jdo.tck.JDO_Test.failOnError(JDO_Test.java:1115)
>       at 
> org.apache.jdo.tck.mapping.Relationship1To1NoRelationships.testSetToNewFromMappedSide(Relationship1To1NoRelationships.java:187)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at org.apache.jdo.tck.JDO_Test.runBare(JDO_Test.java:257)
>       at 
> org.apache.jdo.tck.util.BatchTestRunner.doRun(BatchTestRunner.java:108)
>       at 
> org.apache.jdo.tck.util.BatchTestRunner.start(BatchTestRunner.java:148)
>       at 
> org.apache.jdo.tck.util.BatchTestRunner.main(BatchTestRunner.java:123)
> To reproduce, run either of:
> maven  -Djdo.tck.cfglist=relationshipNoRelationships.conf runtck.jdori
> maven  -Djdo.tck.cfglist=relationshipAllRelationships.conf runtck.jdori

-- 
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