EntityManager is closed? why
x490812 Oct 7, 2008 2:43 AMusing seam2.0.2sp1 on jboss4.2.0
I have an entityhome in which I set the Id and get the instance
here is relevent code:
@Name("taxSummaryHome") @Restrict("#{identity.loggedIn}") @Scope(value = ScopeType.SESSION) public class TaxSummaryHome extends EntityHome<TaxSummary> { private static final long serialVersionUID = 1L; @Out(required = false, scope = ScopeType.SESSION) @In(required = false) private SimpleSelection selectedTaxSummaryRows; public void setId(Object t) { super.setId(t); TaxSummary h = super.getInstance(); System.out.println("\nSuperID: " + super.getId() + "\nID : " + h.getId() + "\nEntityMgrOpen: " + super.getEntityManager().isOpen() + "\nmanaged: " + super.isManaged() + "\nIDDefined: " + super.isIdDefined()); }
The Id is set via a richfaces a4j:support tag attached to a link:
<h:commandLink action="/tax_summary_item.xhtml" value="#{tax.id}"> <a4j:support event="onclick" action="#{taxSummaryHome.setId(tax.id)}"/> </h:commandLink>
It is getting set correctly as the output of the method looks correct
SuperID: 55
ID : 55
EntityMgrOpen: true
managed: true
IDDefined: true
BUT, when I get to the linked page, and display the status of the entityHome entitymanager, it has changed and is now closed.
This code
Item# #{taxSummaryHome.instance.id} #{taxSummaryHome.entityManager.open} xxx #{taxSummaryHome.idDefined} xxx #{taxSummaryHome.id} xxxxx
results in this display - notice entityManager.open is now false
Item# 55 xxx false xxx true xxx 55 xxxxx
1) since the entitymanager is closed, I get an exception using the {taxSummaryHome.managed} attribute in my xhtml page - This seems like a bug
2) it will not persist - I get
javax.persistence.TransactionRequiredException: no transaction is in progress
Do I have to manually start the transaction, if so how, and why is the entityManager closed when it moves from the method to the page display?