> On Dec 27, 2014, at 6:07 PM, Johannes <jotpe....@gmail.com> wrote: > > Hello, I moved the method to CayenneDataObject. I hope the documentation > is more meaningfull now. > > The superclass.vm contains for every set-able relationship two method > which calls the setter in CayenneDataObject. Two methods because a > default value for deletion. > > Would be happy if anybody could review it again at > https://github.com/jotpe/cayenne/commit/d7251014c9d5cb9396a83cd6e2f16e64af27e4b5 > > Regards Johannes
So we are talking about this pull request: https://github.com/apache/cayenne/pull/61 . A question to Cayenne committers and community ... Proposed implementation will require cleanup, optimization and very thorough testing. But aside from that, do we think a collection setter is universally useful to a point that all to-many relationships should expose it? Here is my feedback. I am ok with including a to-many collection "sync" operation in CayenneDataObject, but I am against placing it in default .vm template. This is based on the assumption that we are dealing with an occasionally, but not universally useful operation. So e.g. if a user decides he needs this op for Artist.paintings(..) collection, he would simply create a method in a subclass: Artist extends _Artist { void setPaintings(List<Paintings> ps) { setToManyTarget(_Artist.PAINTINGS, ps, true); } } An ability to extend template behavior with custom per-object code is exactly the reason we have sub/superclass separation. Also I am tentatively -1 on the delete option. I would generally handle it with a proper delete rule in the model. Thoughts? Andrus