> Is this supposed to work?  If not, maybe we should throw the 
> exception when getting the query.

This should be legal. The execution of the query will return data in a
new persistence context (i.e., immediately detached), but you definitely
should be able to set parameters in a PCType=TRANSACTIONAL environment.

-Patrick

-- 
Patrick Linskey
BEA Systems, Inc.
_______________________________________________________________________
Notice:  This email message, together with any attachments, may contain
information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated
entities,  that may be confidential,  proprietary,  copyrighted  and/or
legally privileged, and is intended solely for the use of the individual
or entity named in this message. If you are not the intended recipient,
and have received this message in error, please immediately return this
by email and then delete it. 

> -----Original Message-----
> From: Dain Sundstrom [mailto:[EMAIL PROTECTED] 
> Sent: Tuesday, April 24, 2007 3:04 PM
> To: open-jpa-dev@incubator.apache.org
> Subject: Set query params without TX?
> 
> I have some code that runs outside of a transaction which 
> does basically the following:
> 
>      Query query = entityManager.createNamedQuery(name)
>      query.setParameter(1, "foo");
>      List results = query.getResultList();
> 
> If I don't set the parameter the code works fine (assuming 
> the query didn't need a parameter), but when I set the 
> parameter, I get the following exception:
> 
> Caused by: <0.9.7-incubating-SNAPSHOT fatal user error>
> org.apache.openjpa.persistence.InvalidStateException: The 
> context has been closed.  The stack trace at which the 
> context was closed is held in the embedded exception.
> FailedObject: java.lang.IllegalStateException
>       at 
> org.apache.openjpa.kernel.BrokerImpl.assertOpen(BrokerImpl.java: 
> 4283)
>       at 
> org.apache.openjpa.kernel.QueryImpl.assertOpen(QueryImpl.java:1613)
>       at org.apache.openjpa.kernel.DelegatingQuery.assertOpen
> (DelegatingQuery.java:626)
>       at org.apache.openjpa.persistence.QueryImpl.setParameter
> (QueryImpl.java:404)
>       at org.apache.openjpa.persistence.QueryImpl.setParameter
> (QueryImpl.java:49)
>       at org.apache.openejb.core.cmp.jpa.JpaCmpEngine.executeQuery
> (JpaCmpEngine.java:261)
> 
> Is this supposed to work?  If not, maybe we should throw the 
> exception when getting the query.
> 
> In the mean time I'll code around this.
> 
> -dain
> 

Notice:  This email message, together with any attachments, may contain 
information  of  BEA Systems,  Inc.,  its subsidiaries  and  affiliated 
entities,  that may be confidential,  proprietary,  copyrighted  and/or legally 
privileged, and is intended solely for the use of the individual or entity 
named in this message. If you are not the intended recipient, and have received 
this message in error, please immediately return this by email and then delete 
it.

Reply via email to