While you can use @tx in you custome methods whatever solution is used is fine (even a temp hack). Api just shouldnt change imo Le 20 févr. 2014 20:39, "Gerhard Petracek" <gerhard.petra...@gmail.com> a écrit :
> +1 for #3 > > regards, > gerhard > > > > 2014-02-20 20:35 GMT+01:00 Thomas Hug <thomas....@gmail.com>: > > > Yeah aligning the resolution mechanism would certainly help. @EMC with > > EntityManagerResolver was actually something introduced in the import to > > align it with the JSF module (MessageResolver) so we might consider > > adapting @Tx. > > > > Anyway: > > 1) Is making PartialBeans interceptor-ready something feasible for the > > release > > 2) or do we go with the quick workaround on AbstractEntityRepository > (that > > will probably not hurt too much once interceptors work) > > 3) or just leave tx on concrete repository methods for now until we have > 1) > > in a later release > > > > > > > > > > > > On Thu, Feb 20, 2014 at 5:39 PM, Romain Manni-Bucau > > <rmannibu...@gmail.com>wrote: > > > > > Ok got, that's because @Tx and@EMC doesn't use same syntax. If both > > > uses qualifier it would work > > > Romain Manni-Bucau > > > Twitter: @rmannibucau > > > Blog: http://rmannibucau.wordpress.com/ > > > LinkedIn: http://fr.linkedin.com/in/rmannibucau > > > Github: https://github.com/rmannibucau > > > > > > > > > > > > 2014-02-20 17:15 GMT+01:00 Thomas Hug <thomas....@gmail.com>: > > > > Basically that's the case I'm referring to > > > > > > > > @Repository > > > > @EntityManagerConfig( ... ) > > > > public abstract class SimpleRepository extends > > > > AbstractEntityRepository<Simple, Long> { > > > > > > > > @Transactional > > > > public List<Simple> findByName(String name) { > > > > String query = "select s from Simple s where s.name = > :name"; > > > > return entityManager().createQuery(query, Simple.class) > > > > .setParameter("name", name) > > > > .setLockMode(READ) // needs a tx > > > > .getResultList(); > > > > } > > > > ... > > > > > > > > currently this triggers neither the InvocationHandler nor the > > interceptor > > > > (and if it does then the interceptor should deal with > > > @EntityManagerConfig). > > > > > > > > Another pragmatic variant could be to add something like that to > > > > AbstractEntityRepository: > > > > public abstract V transactional(Callable<V> callable) > > > > which would then run again in the InvocationHandler, but seems like a > > > > rather clunky workaround compared to the version above. > > > > > > > > > > > > On Thu, Feb 20, 2014 at 4:45 PM, Romain Manni-Bucau > > > > <rmannibu...@gmail.com>wrote: > > > > > > > >> it is since you use the handled (interface for instance) as > metadata, > > > no? > > > >> Romain Manni-Bucau > > > >> Twitter: @rmannibucau > > > >> Blog: http://rmannibucau.wordpress.com/ > > > >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > > > >> Github: https://github.com/rmannibucau > > > >> > > > >> > > > >> > > > >> 2014-02-20 16:32 GMT+01:00 Thomas Hug <thomas....@gmail.com>: > > > >> > The more conceptual issue in this concrete case is that > > @Transactional > > > >> > isn't really independent from the handler class (namely > > EntityManager > > > >> > resolution). But I guess that's something we can deal with. > > > >> > > > > >> > So given the release time frame - anything we can do here or shall > > we > > > >> park > > > >> > this case for now? > > > >> > > > > >> > > > > >> > > > > >> > On Thu, Feb 20, 2014 at 2:17 PM, Romain Manni-Bucau > > > >> > <rmannibu...@gmail.com>wrote: > > > >> > > > > >> >> I think so too > > > >> >> > > > >> >> Romain Manni-Bucau > > > >> >> Twitter: @rmannibucau > > > >> >> Blog: http://rmannibucau.wordpress.com/ > > > >> >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > > > >> >> Github: https://github.com/rmannibucau > > > >> >> > > > >> >> > > > >> >> > > > >> >> 2014-02-20 13:05 GMT+01:00 Gerhard Petracek < > > > gerhard.petra...@gmail.com > > > >> >: > > > >> >> > imo we "just" need to support interceptors. > > > >> >> > > > > >> >> > regards, > > > >> >> > gerhard > > > >> >> > > > > >> >> > > > > >> >> > > > > >> >> > 2014-02-20 12:20 GMT+01:00 Thomas Hug <thomas....@gmail.com>: > > > >> >> > > > > >> >> >> While looking at transactional repositories, I realized that > > > >> >> PartialBeans > > > >> >> >> invoke concrete methods directly. That doesn't give the > > invocation > > > >> >> handler > > > >> >> >> a chance to hook into the call (and in the data case to > control > > > the > > > >> tx). > > > >> >> >> > > > >> >> >> What about creating an additional handler interface which also > > > >> allows to > > > >> >> >> pass in the proceeding method? Or is there a better > alternative? > > > >> >> >> > > > >> >> > > > >> > > > > > >