I haven't tried it yet but here's my suggestion.
This code should work:
| UserTransaction ut = sessionContext.getUserTransaction();
| ut.begin();
| MyEntity a = em.find(MyEntity.class, Long.valueOf(1)); // <-- a is bound.
Not initialized lazy fields can be accessed
| a.setName("FOO2");
| MyRelatedBean b = a.getMyRelatedBean();
| em.merge(a);
| ut.commit();
|
It think your code isn't working, because your entity is detached after the
first commit. You must bind it (with the find method) bevor you can access its
lazy loaded fields. Another possibilitie is to enforce, that the field is
loaded before the entity is detached. There are two ways to do this:
- access the lazy loaded field before detachment (see the code below)
- use ejb-QL (fetch join)
| UserTransaction ut = sessionContext.getUserTransaction();
| ut.begin();
| MyEntity a = em.find(MyEntity.class, Long.valueOf(1));
| a.getMyRelatedBean(); //the lazy attribut is initialized. If it is a list:
call size()
| ut.commit(); //a is being detached
|
| ut = sessionContext.getUserTransaction();
| ut.begin();
| a.setName("FOO2");
| MyRelatedBean b = a.getMyRelatedBean();
| em.merge(a);
| ut.commit();
|
Best regards
Meinert
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3986796#3986796
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3986796
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user