I typically use AppScoped or Dependent. IDEs don't like when you add AppScoped to repositories (since they're not valid beans) so they usually end up as Dependent. There's no runtime performance issues, just need to make sure the underlying EM is consistent through out (I'm using a request scoped EM on top of REST APIs in almost all cases, it works well). Granted my app looks like Rest Controller -> Service(s) -> Repositories where the server layer is always app scoped.
John On Tue, Feb 13, 2018 at 6:31 AM Luís Alves <[email protected]> wrote: > There you use the @RequestScoped....and you present @TransactionScoped, > which seems exactly what I want but not sure what happens when TX is marked > as NEVER or SUPPORTS (and none is oppened). > > On Tue, Feb 13, 2018 at 11:15 AM, Gerhard Petracek <[email protected]> > wrote: > > > hi luis, > > > > please have a look at [1]. > > > > regards, > > gerhard > > > > [1] http://deltaspike.apache.org/documentation/jpa.html#Basicusage > > > > > > > > 2018-02-13 12:11 GMT+01:00 Luís Alves <[email protected]>: > > > > > Well...I have REST services...so I think RequestScoped EM would be ok. > > > > > > On Tue, Feb 13, 2018 at 10:55 AM, Thomas Andraschko < > > > [email protected]> wrote: > > > > > > > If an AppScoped EntityManager is the right thing for you, yes. > > > > In my webapplication i mostly use RequestScoped EMs. > > > > > > > > 2018-02-13 11:39 GMT+01:00 Luís Alves <[email protected]>: > > > > > > > > > "An instance of a dependent bean is never shared between *different > > > > clients > > > > > *or different injection points." > > > > > "Beans with scope @Dependent don’t need a proxy object. The client > > > holds > > > > a > > > > > direct reference to its instance." > > > > > > > > > > so...I think I should be OK. > > > > > > > > > > On Tue, Feb 13, 2018 at 10:29 AM, Luís Alves < > [email protected]> > > > > > wrote: > > > > > > > > > > > So my Service layer is @ApplicationScoped. > > > > > > Since Inject the @Repository into my service layer and is > > @Dependent > > > it > > > > > > will be an @ApplicationScoped. I'm producing my EM like: > > > > > > > > > > > > @ApplicationScoped > > > > > > public class EntityManagerProducerImpl implements > > > EntityManagerProducer > > > > > > { > > > > > > > > > > > > @PersistenceContext(unitName = "unit") > > > > > > private EntityManager entityManager; > > > > > > > > > > > > > > > > > > @Override > > > > > > @Produces > > > > > > @Default > > > > > > public EntityManager get() > > > > > > { > > > > > > return entityManager; > > > > > > } > > > > > > } > > > > > > > > > > > > So...will it work properly? or do I have to mark my EM as > > > > @RequestScoped? > > > > > > > > > > > > LA > > > > > > > > > > > > > > > > > > > > > > > > On Tue, Feb 13, 2018 at 10:24 AM, Thomas Andraschko < > > > > > > [email protected]> wrote: > > > > > > > > > > > >> Hi, > > > > > >> > > > > > >> the default scope is @Dependent but i suggest everyone to use > > > > > >> @ApplicationScoped. > > > > > >> The EM will be proxied if you use a NormalScope like > > @RequestScoped, > > > > > .... > > > > > >> > > > > > >> Regards, > > > > > >> Thomas > > > > > >> > > > > > >> 2018-02-13 10:54 GMT+01:00 Luís Alves <[email protected]>: > > > > > >> > > > > > >> > Hi, > > > > > >> > > > > > > >> > What is the scope of @Repository? Do you use a similar > approach > > of > > > > > >> Spring? > > > > > >> > @Singleton and proxy the EM? > > > > > >> > > > > > > >> > Regards, > > > > > >> > LA > > > > > >> > > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > >
