Git Product home page Git Product logo

composited-keys-poc's People

Contributors

jdiazgon avatar trivesc avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

sujith-mn

composited-keys-poc's Issues

Feedback and discussion on this POC

Hi @trivesc

thanks for your contribution to make devon4j better. I appreciate this a lot and will try to support you.

Do you have customer demands that define requirements on the technical data model and force you to do so? (do not tell details and customer names here in OSS space)

This is adding quite some complexity that can be avoided by having a technical primary key and maintaining the business key as additional attributes instead.
However, in some cases I can see your need and am willing to extend devonfw with your feature. But if we know your use-case and demands more detailed, we can better design and plan changes.

public class NameEntity extends ApplicationPersistenceEntity<Long> implements Name<Long>

I do not understand why NameEntity is already bound to Long while the entity interface Name still carries the generic type. IMHO this does not make sense and as generics are sometimes nasty for developers (esp. beginners) we should avoid them where possible. So IMHO it should be just Name here and that interface can then have the in its extends declaration.

Further we need to think about compatibility. ApplicationPersistenceEntity already exists in hunders of devonfw projects. Chaning this and the cobigen templates in an incompatible way is IMHO a very bad idea. Instead you can introduce a new super type ApplicationGenericPersistenceEntity<ID> and existing projects can modify ApplicationPersistenceEntity to extends ApplicationGenericPersistenceEntity<Long> and their code will still work and they can continue to use CobiGen with the same templates.
Do you agree and keeping compatibility for existing projects even if it leads to somewhat more artifical names?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.