Finally found some spare time to get back to this. You can find an API proposal at [1] and a sample repository at [2]. Suggestions?
[1] https://github.com/thomashug/DeltaSpike-Mirror/tree/master/deltaspike/modules/data/api/src/main/java/org/apache/deltaspike/data/api/mapping [2] https://github.com/thomashug/DeltaSpike-Mirror/blob/master/deltaspike/modules/data/impl/src/test/java/org/apache/deltaspike/data/test/service/SimpleMappedRepository.java On Tue, Oct 1, 2013 at 5:44 PM, Thomas Hug <[email protected]> wrote: > +1 on the feature, just been busy on a project where that would have been > handy. > > And apologies for letting the thread quiet, will I'll try to propose > something over the next two weeks based on the initial API suggestion (and > get some other JIRA issues finally done...). > > > On Tue, Oct 1, 2013 at 4:31 PM, Jean-Louis MONTEIRO <[email protected]>wrote: > >> Yep, I still think it's useful. >> >> JLouis >> >> >> 2013/10/1 Romain Manni-Bucau <[email protected]> >> >> > Not particularly >> > >> > the thread ends while the feature is useful IMO so simply asking what >> to do >> > next ;) >> > >> > *Romain Manni-Bucau* >> > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >> > *Blog: **http://rmannibucau.wordpress.com/*< >> > http://rmannibucau.wordpress.com/> >> > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >> > *Github: https://github.com/rmannibucau* >> > >> > >> > >> > 2013/10/1 Jason Porter <[email protected]> >> > >> > > Was this my action item? >> > > >> > > Sent from my iPhone >> > > >> > > > On Oct 1, 2013, at 7:43, Romain Manni-Bucau <[email protected]> >> > > wrote: >> > > > >> > > > Hi >> > > > >> > > > any news on it? >> > > > >> > > > @ResultMapper was good to me >> > > > >> > > > *Romain Manni-Bucau* >> > > > *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >> > > > *Blog: **http://rmannibucau.wordpress.com/*< >> > > http://rmannibucau.wordpress.com/> >> > > > *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >> > > > *Github: https://github.com/rmannibucau* >> > > > >> > > > >> > > > >> > > > 2013/7/12 Jason Porter <[email protected]> >> > > > >> > > >> On Fri, Jul 12, 2013 at 12:13 AM, Romain Manni-Bucau >> > > >> <[email protected]>wrote: >> > > >> >> > > >>> Ps: you can make a cdi bean an ejb from cdi extension >> > > >>> >> > > >> >> > > >> No, the bootstrapping for each container do not communicate to my >> > > >> knowledge. >> > > >> >> > > >> >> > > >>> Le 12 juil. 2013 08:12, "Romain Manni-Bucau" < >> [email protected]> >> > a >> > > >>> écrit : >> > > >>> >> > > >>>> Hi >> > > >>>> >> > > >>>> Depending the case DTO are not an option. >> > > >>>> >> > > >>>> I agree in rest app i wouldnt it but if not possible (maybe >> through >> > > >>>> another Bean) it would kill this module for half of the usages i >> see >> > > >>> since >> > > >>>> i'd need to add this layer. >> > > >>>> Le 12 juil. 2013 06:55, "hantsy" <[email protected]> a écrit : >> > > >>>> >> > > >>>>> No DTO please, data module for data access, why we care about >> DTO. >> > > >>>>> >> > > >>>>> A question about the data, the difference for EJB and none EJB >> > > >>>>> environment. >> > > >>>>> >> > > >>>>> if possible in a EJB envoriment, proxy the Repository and add >> > > >> @Stateless >> > > >>>>> and transaction declaration to Repository automatically at >> runtime. >> > > >>>>> >> > > >>>>> Regards >> > > >>>>> >> > > >>>>> Hantsy >> > > >>>>>> On 7/10/2013 23:23, Thomas Hug wrote: >> > > >>>>>> I wouldn't label the feature with DTO but rather as some >> general >> > > >>> result >> > > >>>>>> transformation - might also be useful for e.g. native queries. >> > Going >> > > >>>>> back >> > > >>>>>> to the API suggestion, from that perspective such an annotation >> > > >> should >> > > >>>>>> probably also work on method level, so I'd keep the forEntity >> out >> > > >>> there. >> > > >>>>>> >> > > >>>>>> >> > > >>>>>> On Wed, Jul 10, 2013 at 4:22 PM, John D. Ament < >> > > >>> [email protected] >> > > >>>>>> wrote: >> > > >>>>>> >> > > >>>>>>> Personally, I don't like this idea. >> > > >>>>>>> >> > > >>>>>>> A DAO should do DAO stuff. >> > > >>>>>>> A DTO should do DTO stuff. >> > > >>>>>>> >> > > >>>>>>> The transformation of your entities into some other POJO >> > shouldn't >> > > >> be >> > > >>>>>>> inside your DAO. >> > > >>>>>>> >> > > >>>>>>> Right now, I use google guava to do DTO work on entities going >> > back >> > > >>> and >> > > >>>>>>> forth over a REST API. Works well IMHO. >> > > >>>>>>> >> > > >>>>>>> John >> > > >>>>>>> >> > > >>>>>>> >> > > >>>>>>> On Wed, Jul 10, 2013 at 9:21 AM, Romain Manni-Bucau >> > > >>>>>>> <[email protected]>wrote: >> > > >>>>>>> >> > > >>>>>>>> globally my answer meant "if forEntity is sometimes >> mandatory, >> > > >>>>> sometimes >> > > >>>>>>>> not this is maybe not the right place" >> > > >>>>>>>> >> > > >>>>>>>> i thought to add it to mapper config >> > > >>>>>>>> >> > > >>>>>>>> *Romain Manni-Bucau* >> > > >>>>>>>> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >> > > >>>>>>>> *Blog: **http://rmannibucau.wordpress.com/*< >> > > >>>>>>>> http://rmannibucau.wordpress.com/> >> > > >>>>>>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >> > > >>>>>>>> *Github: https://github.com/rmannibucau* >> > > >>>>>>>> >> > > >>>>>>>> >> > > >>>>>>>> >> > > >>>>>>>> 2013/7/10 Thomas Hug <[email protected]> >> > > >>>>>>>> >> > > >>>>>>>>> Making forEntity non-optional would then be redundant for >> the >> > > >>> regular >> > > >>>>>>>> cases >> > > >>>>>>>>> using the base interface, so I wouldn't. But I see that it >> > should >> > > >>> be >> > > >>>>>>>>> clearly documented then as things might get confusing... >> > > >>>>>>>>> >> > > >>>>>>>>> >> > > >>>>>>>>> On Wed, Jul 10, 2013 at 3:02 PM, Romain Manni-Bucau >> > > >>>>>>>>> <[email protected]>wrote: >> > > >>>>>>>>> >> > > >>>>>>>>>> do you mean you force forEntity = Person.class? >> > > >>>>>>>>>> >> > > >>>>>>>>>> looks ok for me since the only constraint is to add the dto >> > > >> types >> > > >>>>>>>>> somewhere >> > > >>>>>>>>>> :) >> > > >>>>>>>>>> >> > > >>>>>>>>>> *Romain Manni-Bucau* >> > > >>>>>>>>>> *Twitter: @rmannibucau <https://twitter.com/rmannibucau>* >> > > >>>>>>>>>> *Blog: **http://rmannibucau.wordpress.com/*< >> > > >>>>>>>>>> http://rmannibucau.wordpress.com/> >> > > >>>>>>>>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >> > > >>>>>>>>>> *Github: https://github.com/rmannibucau* >> > > >>>>>>>>>> >> > > >>>>>>>>>> >> > > >>>>>>>>>> >> > > >>>>>>>>>> 2013/7/10 Thomas Hug <[email protected]> >> > > >>>>>>>>>> >> > > >>>>>>>>>>> Hmm and I assumed DTOs are dead and buried :-) >> > > >>>>>>>>>>> >> > > >>>>>>>>>>> Packing this in the base interface feels kind of clunky to >> > me - >> > > >>>>>>> also >> > > >>>>>>>>>>> considering that there are repositories without the need >> to >> > > >>> extend >> > > >>>>>>>> the >> > > >>>>>>>>>> base >> > > >>>>>>>>>>> interface. What about something like >> > > >>>>>>>>>>> >> > > >>>>>>>>>>> @Repository(forEntity = Person.class) >> > > >>>>>>>>>>> @ResultMapper(entityMapper = MapperX.class, keyMapper = >> > > >>>>>>>> MapperY.class) >> > > >>>>>>>>>>> public interface PersonRepository extends >> > > >>>>>>> EntityRepository<PersonDto, >> > > >>>>>>>>>>> DtoPk> { ... } >> > > >>>>>>>>>>> >> > > >>>>>>>>>>> Having the Entity on @Repository takes precedence and the >> > type >> > > >>>>>>>>> parameters >> > > >>>>>>>>>>> are in this case just for convenience. >> > > >>>>>>>>>>> >> > > >>>>>>>>>>> >> > > >>>>>>>>>>> >> > > >>>>>>>>>>> On Wed, Jul 10, 2013 at 2:35 PM, Romain Manni-Bucau >> > > >>>>>>>>>>> <[email protected]>wrote: >> > > >>>>>>>>>>> >> > > >>>>>>>>>>>> +1 >> > > >>>>>>>>>>>> >> > > >>>>>>>>>>>> just to complete this thread the main issue is not the >> > > >>>>>>>> implementation >> > > >>>>>>>>>> but >> > > >>>>>>>>>>>> the exposed API: >> > > >>>>>>>>>>>> >> > > >>>>>>>>>>>> public interface EntityRepository<E, PK extends >> > Serializable> >> > > >>>>>>>>>>>> >> > > >>>>>>>>>>>> would become >> > > >>>>>>>>>>>> >> > > >>>>>>>>>>>> public interface EntityDtoRepository<E, PK extends >> > > >> Serializable, >> > > >>>>>>>> Dto, >> > > >>>>>>>>>>>> DtoPk> >> > > >>>>>>>>>>>> >> > > >>>>>>>>>>>> *Romain Manni-Bucau* >> > > >>>>>>>>>>>> *Twitter: @rmannibucau <https://twitter.com/rmannibucau >> >* >> > > >>>>>>>>>>>> *Blog: **http://rmannibucau.wordpress.com/*< >> > > >>>>>>>>>>>> http://rmannibucau.wordpress.com/> >> > > >>>>>>>>>>>> *LinkedIn: **http://fr.linkedin.com/in/rmannibucau* >> > > >>>>>>>>>>>> *Github: https://github.com/rmannibucau* >> > > >>>>>>>>>>>> >> > > >>>>>>>>>>>> >> > > >>>>>>>>>>>> >> > > >>>>>>>>>>>> 2013/7/10 Jean-Louis MONTEIRO <[email protected]> >> > > >>>>>>>>>>>> >> > > >>>>>>>>>>>>> Hello guys, >> > > >>>>>>>>>>>>> >> > > >>>>>>>>>>>>> Just used DS Data module yesturday, and I was wondering >> if >> > we >> > > >>>>>>>> could >> > > >>>>>>>>>>> add a >> > > >>>>>>>>>>>>> feature allowing on-the-fly conversion to DTO. >> > > >>>>>>>>>>>>> For example, we could use modelmapper (or similar to >> > convert >> > > >>>>>>> DAO >> > > >>>>>>>>>> return >> > > >>>>>>>>>>>>> values to DTO objects). >> > > >>>>>>>>>>>>> >> > > >>>>>>>>>>>>> Adding a mapper interface to delegate to would also >> allow >> > > >>>>>>> people >> > > >>>>>>>> to >> > > >>>>>>>>>>> plug >> > > >>>>>>>>>>>>> their own implementation in. >> > > >>>>>>>>>>>>> >> > > >>>>>>>>>>>>> WDYT? >> > > >>>>>>>>>>>>> >> > > >>>>>>>>>>>>> JLouis >> > > >>>>>>>>>>>>> >> > > >>>>>>>>>>>>> >> > > >>>>>>>>>>>>> 2013/7/1 Thomas Hug <[email protected]> >> > > >>>>>>>>>>>>> >> > > >>>>>>>>>>>>>> Hi John >> > > >>>>>>>>>>>>>> Thnx for the message, missed that one. Looks like >> there's >> > a >> > > >>>>>>>>> default >> > > >>>>>>>>>>>>> profile >> > > >>>>>>>>>>>>>> needed (test-persistence.xml only part of the specific >> > > >> server >> > > >>>>>>>>>>>> profiles). >> > > >>>>>>>>>>>>>> Will check tonight. >> > > >>>>>>>>>>>>>> >> > > >>>>>>>>>>>>>> >> > > >>>>>>>>>>>>>> On Mon, Jul 1, 2013 at 2:42 AM, John D. Ament < >> > > >>>>>>>>>>> [email protected] >> > > >>>>>>>>>>>>>>> wrote: >> > > >>>>>>>>>>>>>>> Hi >> > > >>>>>>>>>>>>>>> >> > > >>>>>>>>>>>>>>> Whoever brought in the data module, can you double >> check >> > > >>>>>>> your >> > > >>>>>>>>>> tests >> > > >>>>>>>>>>>> and >> > > >>>>>>>>>>>>>>> license headers? >> > > >>>>>>>>>>>>>>> >> > > >>>>>>>>>>>>>>> I think it's just your tests, but it's failing during >> a >> > rat >> > > >>>>>>>>> check >> > > >>>>>>>>>>>>>>> >> > > >>>>>>>>>>>>>>> >> > > >>>>>>> >> > > >>>>> >> > > >>> >> > > >> >> > > >> > >> https://builds.apache.org/job/DeltaSpike%20RAT-Check/org.apache.deltaspike.modules$deltaspike-data-module-impl/558/testReport/org.apache.deltaspike.data.impl/QueryResultTest/org_apache_deltaspike_data_impl_QueryResultTest/ >> > > >>>>>>>>>>>>>>> John >> > > >>>>>>>>>>>>>>> >> > > >>>>>>>>>>>>> >> > > >>>>>>>>>>>>> >> > > >>>>>>>>>>>>> -- >> > > >>>>>>>>>>>>> Jean-Louis >> > > >>>>>>>>>>>>> >> > > >>>>> >> > > >>>>> >> > > >>> >> > > >> >> > > >> >> > > >> >> > > >> -- >> > > >> Jason Porter >> > > >> http://en.gravatar.com/lightguardjp >> > > >> >> > > >> > >> >> >> >> -- >> Jean-Louis >> > >
