[
https://issues.apache.org/jira/browse/ISIS-814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Dan Haywood updated ISIS-814:
-----------------------------
Fix Version/s: (was: core-1.7.0)
core-2.0.0
> Provide a better way to handle polymorphic relationships, eg implement a
> "PolymorphicNavigator service"
> -------------------------------------------------------------------------------------------------------
>
> Key: ISIS-814
> URL: https://issues.apache.org/jira/browse/ISIS-814
> Project: Isis
> Issue Type: New Feature
> Components: Core
> Affects Versions: core-1.5.0
> Reporter: Dan Haywood
> Assignee: Dan Haywood
> Priority: Minor
> Fix For: core-2.0.0
>
>
> We'd like to be able to decouple modules (eg from Estatio or wherever) and
> make them reusable for others.
> For example, Estatio has "CommunicationChannel", where its owner is of type
> CommunicationChannelOwner. We currently use DataNucleus' support for
> interface mappings, but (because we use annotations) this requires us to list
> the fully qualified class names of the implementations in the
> CommunicationChannel; hardly reusable code.
> Naked Objects MVC has a service called the PolymorphicNavigator [1], a
> mechanism to handle relationships between different Entity Framework
> contexts, typically via an interface.
> The PolymorphicNavigator requires that all implementations use an int (or
> long) as their primary key. It then stores the relationship in a separate
> table, qualified by the object type. This is a bit like DataNucleus'
> "identity" strategy for mapping interfaces [2], except that:
> - two columns are used, not one (for object type, and object PK
> - the link is held separately from the rest of the object's data.
> [1]
> https://github.com/NakedObjectsGroup/NakedObjectsFramework/blob/4e860789ad115a38cd3348ceb5c0b141fb0e0d7b/Programming%20Model/NakedObjects.Helpers/Services/PolymorphicNavigator.cs
> [2] http://www.datanucleus.org/products/datanucleus/jdo/orm/interfaces.html
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)