tomee-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From José Luis Cetina <maxtorz...@gmail.com>
Subject Re: Fetch without transaction
Date Wed, 30 Oct 2013 16:04:07 GMT
>From http://docs.oracle.com/javaee/6/tutorial/doc/bncij.html

Supports Attribute

If the client is running within a transaction and invokes the enterprise
bean’s method, the method executes within the client’s transaction. If the
client is not associated with a transaction, the container does not start a
new transaction before running the method.

Because the transactional behavior of the method may vary, you should use
the Supports attribute with caution.


The problem is that im calling my ejb directly from my managedbean (@named)
and of course the "client" doesn't have any transaction and the behavior is
the same, i could not fecth using eager, fetch
or getFetchPlan().addFetchGroup() any of this work with SUPPORTS.


Then as i can see the only way is to use REQUIRED, because i use stateless,
but this let me thinking, why this work
with @TransactionManagement(TransactionManagementType.BEAN)? , with Bean
transaction i don't have to star any transaction for use a fetch


2013/10/30 Jean-Louis MONTEIRO <jeanouii@gmail.com>

> oups, message sent too quickly ...
>
> SUPPORTS is usually fine as a default for "finder" methods.
> As soon as there is no transaction, an entity is detached when returned by
> the entity manager.
> Even with SUPPORTS btw
>
> When REQUIRED (or any transaction) is used, the entity remains attached and
> managed my the persistence context till the end of the transaction by
> default.
>
> For an EPC in a Stateful, it's a bit different.
> So I'd say you have the desired behavior as per the spec.
>
> JLouis
>
>
>
> 2013/10/30 Jean-Louis MONTEIRO <jeanouii@gmail.com>
>
> > SUPPORTS is fine then
> >
> >
> > 2013/10/30 José Luis Cetina <maxtorzito@gmail.com>
> >
> >> Sorry if i post here, i posted this some days ago, but in openjpa
> mailing
> >> list somethings you dont get answer's, i hope somebody can help.
> >>
> >>
> >> Hi, i have a problem, im changing my ejbs from
> >>
> >> @TransactionManagement(TransactionManagementType.BEAN)
> >>
> >> to
> >>
> >> @TransactionAttribute(TransactionAttributeType.REQUIRED)
> >> @TransactionManagement(TransactionManagementType.CONTAINER)
> >>
> >> My ejb methods that only performs read only querys are marked with
> >> @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) because
> they
> >> are read only, this works as expected. But when i try to fetch some
> >> properties from my entity that is marked as LAZY i could never retrieved
> >> because is null. If i mark my entity property (list) with EAGER or if i
> >> mark my method with
> >> @TransactionAttribute(TransactionAttributeType.REQUIRED) all works.
> >>
> >> So my question is, do i have to use a transaction for read only querys
> >> that
> >> need any kind of fetch, if yes, Why???
> >>
> >
> >
> >
> > --
> > Jean-Louis
> >
>
>
>
> --
> Jean-Louis
>



-- 
-------------------------------------------------------------------
*SCJA. José Luis Cetina*
-------------------------------------------------------------------

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message