nhl / link-move

A model-driven dynamically-configurable framework to acquire data from external sources and save it to your database.
Apache License 2.0
34 stars 15 forks source link

importing many-to-many relationships feature #130

Open vitalz opened 7 years ago

vitalz commented 7 years ago

Cayenne does not generate (associative) entity classes for many-to-many database tables when junction table just keeps only foreign keys: for instance, product and right has relationship defined by table record {product_id, right_id}. LinkMove has to provide ability to import/remove relationships in a some way like:

    LmTask task = lmRuntime.getTaskService()
                            .createOrUpdateRelationship(Product.class, Right.class)
            .sourceExtractor("product_group_has_right")
            .matchBy(Product.class, Right.class)
            .task();

Issue is per my talk to @rzen.

atomashpolskiy commented 7 years ago

I like the idea, but the proposed implementation does not make much sense. Product and Right may have multiple relationships.

A junction table is a database entity, and the most natural solution would be to provide the API to synchronize database entities. Most parts should be already there, e.g.

andrus commented 7 years ago

+1 on DbEntity sync. I had a similar idea when we discussed it with @rzen .

@atomashpolskiy : let's discuss offline some time after July 3 (or sooner over video chat if you need to).