Ok
2013/10/30 Romain Manni-Bucau <[email protected]> > shouldn't work with BEAN exepted if called from a bean which started a tx > Romain Manni-Bucau > Twitter: @rmannibucau > Blog: http://rmannibucau.wordpress.com/ > LinkedIn: http://fr.linkedin.com/in/rmannibucau > Github: https://github.com/rmannibucau > > > > 2013/10/30 José Luis Cetina <[email protected]>: > > Is injected @PersistenceContex > > > > > > @Stateless > > @TransactionAttribute(TransactionAttributeType.REQUIRED) > > @TransactionManagement(TransactionManagementType.CONTAINER) > > public class MenusFacade implements MenusFacadeLocal { > > > > @PersistenceContext(unitName = > > BusinessLayerUtils.KX_GLOBAL_PERSISTENCE_UNIT_NAME) > > private EntityManager em; > > ............ > > > > > > 2013/10/30 Romain Manni-Bucau <[email protected]> > > > >> Hi > >> > >> is your entity manager created manually or managed? > >> Romain Manni-Bucau > >> Twitter: @rmannibucau > >> Blog: http://rmannibucau.wordpress.com/ > >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > >> Github: https://github.com/rmannibucau > >> > >> > >> > >> 2013/10/30 José Luis Cetina <[email protected]>: > >> > 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 <[email protected]> > >> > > >> >> 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 <[email protected]> > >> >> > >> >> > SUPPORTS is fine then > >> >> > > >> >> > > >> >> > 2013/10/30 José Luis Cetina <[email protected]> > >> >> > > >> >> >> 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* > >> > ------------------------------------------------------------------- > >> > > > > > > > > -- > > ------------------------------------------------------------------- > > *SCJA. José Luis Cetina* > > ------------------------------------------------------------------- > -- ------------------------------------------------------------------- *SCJA. José Luis Cetina* -------------------------------------------------------------------
