You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by Kevin Sutter <kw...@gmail.com> on 2006/09/18 18:37:19 UTC

Does OpenJPA support updating of related objects via JPQL?

Hi,
Does OpenJPA (or JPA, for tha matter) support the updating of related
objects via JPQL?  For example, should the following query work where we are
attempting to access the orderId on the related currentOrder object?

UPDATE Customer c SET c.currentOrder.orderId = :orderId WHERE c.id =
:customerId

As you can guess, we are getting an exception and call stack from OpenJPA.
But, then we started wondering whether this is even supported by the JPA
spec.  The spec isn't clear one way or the other (or, at least, I couldn't
find a definitive answer).  Any ideas?

In case you were wondering, here's the call stack:

[9/16/06 16:15:52:953 EDT] 00000032 ExceptionUtil E   CNTR0020E: EJB threw
an unexpected (non-declared) exception during invocation of method
"openOrder" on bean "BeanId(OpenJPATestEAR#OpenJPATest.jar#OrderEJB, null)".
Exception data: <4|false|0.9.0-incubating-SNAPSHOT>
org.apache.openjpa.persistence.ArgumentException: An error occurred while
parsing the query filter 'UPDATE Customer c SET c.currentOrder.orderId =
:orderId WHERE c.id = :customerId'. Error message:
<4|false|0.9.0-incubating-SNAPSHOT>
org.apache.openjpa.kernel.jpql.ParseException: Encountered "." at character
37, but expected: ["="].
    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL.parse
(JPQLExpressionBuilder.java:1655)
    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL
.<init>(JPQLExpressionBuilder.java:1638)
    at org.apache.openjpa.kernel.jpql.JPQLParser.parse(JPQLParser.java:44)
    at org.apache.openjpa.kernel.ExpressionStoreQuery.newCompilation(
ExpressionStoreQuery.java:141)
    at org.apache.openjpa.kernel.QueryImpl.newCompilation(QueryImpl.java
:598)
    at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(
QueryImpl.java:581)
    at org.apache.openjpa.kernel.QueryImpl.compileForExecutor(QueryImpl.java
:608)
    at org.apache.openjpa.kernel.QueryImpl.getOperation(QueryImpl.java:1421)
    at org.apache.openjpa.kernel.DelegatingQuery.getOperation(
DelegatingQuery.java:120)
    at org.apache.openjpa.persistence.QueryImpl.executeUpdate(QueryImpl.java
:293)
:
:

Thanks,
Kevin

Re: Does OpenJPA support updating of related objects via JPQL?

Posted by Kevin Sutter <kw...@gmail.com>.
Marc,
Thanks.  And, I fully understand that any change would be more than just
extending the parser...  :-)

Kevin

On 9/18/06, Marc Prud'hommeaux <mp...@apache.org> wrote:
>
> Kevin-
>
> On Sep 18, 2006, at 11:19 AM, Kevin Sutter wrote:
>
> > Thanks Craig and Marc,
> > I had found this reference in the spec, but it still wasn't clear
> > to me.
> > Maybe I'm reading it wrong, but the BNF states (in Section 4.10):
> >
> > update_item ::= [identification_variable.] {state_field |
> > single_valued_association_field} = new_value
> >
> > I couldn't find the definition of the
> > "single_valued_association_field".  I
> > was wondering if there was any implication that this might allow for
> > referenced fields.  But, as I continue to look at the spec, I
> > suppose if
> > that was to be allowed, they would have specified
> > "single_valued_association_path_expression"?  Is that the way you
> > guys are
> > reading the spec?
>
> Yeah, they seem to have left "single_valued_association_field" out of
> the BNF, only describing it textually:
>
> "A single_valued_association_field is designated by the name of an
> association-field in a one-to-one or many-to-one relationship. The
> type of a single_valued_association_field and thus a
> single_valued_association_path_expression is the abstract schema type
> of the related entity."
>
> This is a little vague, but give the following path expression BNF:
>
> single_valued_association_path_expression ::= identification_variable.
> {single_valued_association_field.}*single_valued_association_field
>
> ... I think it is reasonable to infer that
> "single_valued_association_field" is meant to only be a single field,
> not a series of fields (or else the "*" would not be required).
>
> (in any case, even if the BNF did support it, the OpenJPA back-end
> doesn't efficiently handle anything but updating the top-level fields
> of an entity, so it would be more than just a matter of extending/
> fixing the parser to support this)
>
>
>
> > Even the BNF for "state field" implies that this would work if
> > currentOrder
> > was an embedded class...
> >
> > state_field ::= {embedded_class_state_field.}*simple_state_field
> >
> > Thanks,
> > Kevin
> >
> > On 9/18/06, Craig L Russell <Cr...@sun.com> wrote:
> >>
> >> Hi,
> >>
> >> The JPQL BNF prohibits this operation. From 4.10:
> >>
> >> update_statement ::= update_clause [where_clause]
> >> update_clause ::=UPDATE abstract_schema_name [[AS]
> >> identification_variable]
> >> SET update_item {, update_item}*
> >> update_item ::= [identification_variable.]{state_field |
> >> single_valued_association_field}=
> >> new_value
> >>
> >> The update_item must be an identification variable followed by a
> >> single "." with a state field or single-valued association field, so
> >> no embedded object.
> >>
> >> Craig
> >>
> >> On Sep 18, 2006, at 9:37 AM, Kevin Sutter wrote:
> >>
> >> > Hi,
> >> > Does OpenJPA (or JPA, for tha matter) support the updating of
> >> related
> >> > objects via JPQL?  For example, should the following query work
> >> > where we are
> >> > attempting to access the orderId on the related currentOrder
> >> object?
> >> >
> >> > UPDATE Customer c SET c.currentOrder.orderId = :orderId WHERE
> >> c.id =
> >> > :customerId
> >> >
> >> > As you can guess, we are getting an exception and call stack from
> >> > OpenJPA.
> >> > But, then we started wondering whether this is even supported by
> >> > the JPA
> >> > spec.  The spec isn't clear one way or the other (or, at least, I
> >> > couldn't
> >> > find a definitive answer).  Any ideas?
> >> >
> >> > In case you were wondering, here's the call stack:
> >> >
> >> > [9/16/06 16:15:52:953 EDT] 00000032 ExceptionUtil E   CNTR0020E:
> >> > EJB threw
> >> > an unexpected (non-declared) exception during invocation of method
> >> > "openOrder" on bean "BeanId
> >> > (OpenJPATestEAR#OpenJPATest.jar#OrderEJB, null)".
> >> > Exception data: <4|false|0.9.0-incubating-SNAPSHOT>
> >> > org.apache.openjpa.persistence.ArgumentException: An error occurred
> >> > while
> >> > parsing the query filter 'UPDATE Customer c SET
> >> > c.currentOrder.orderId =
> >> > :orderId WHERE c.id = :customerId'. Error message:
> >> > <4|false|0.9.0-incubating-SNAPSHOT>
> >> > org.apache.openjpa.kernel.jpql.ParseException: Encountered "." at
> >> > character
> >> > 37, but expected: ["="].
> >> >    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder
> >> > $ParsedJPQL.parse
> >> > (JPQLExpressionBuilder.java:1655)
> >> >    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder
> >> $ParsedJPQL
> >> > .<init>(JPQLExpressionBuilder.java:1638)
> >> >    at org.apache.openjpa.kernel.jpql.JPQLParser.parse
> >> > (JPQLParser.java:44)
> >> >    at
> >> org.apache.openjpa.kernel.ExpressionStoreQuery.newCompilation(
> >> > ExpressionStoreQuery.java:141)
> >> >    at org.apache.openjpa.kernel.QueryImpl.newCompilation
> >> > (QueryImpl.java
> >> > :598)
> >> >    at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(
> >> > QueryImpl.java:581)
> >> >    at org.apache.openjpa.kernel.QueryImpl.compileForExecutor
> >> > (QueryImpl.java
> >> > :608)
> >> >    at org.apache.openjpa.kernel.QueryImpl.getOperation
> >> > (QueryImpl.java:1421)
> >> >    at org.apache.openjpa.kernel.DelegatingQuery.getOperation(
> >> > DelegatingQuery.java:120)
> >> >    at org.apache.openjpa.persistence.QueryImpl.executeUpdate
> >> > (QueryImpl.java
> >> > :293)
> >> > :
> >> > :
> >> >
> >> > Thanks,
> >> > Kevin
> >>
> >> Craig Russell
> >> Architect, Sun Java Enterprise System http://java.sun.com/products/
> >> jdo
> >> 408 276-5638 mailto:Craig.Russell@sun.com
> >> P.S. A good JDO? O, Gasp!
> >>
> >>
> >>
> >>
>
>

Re: Does OpenJPA support updating of related objects via JPQL?

Posted by Marc Prud'hommeaux <mp...@apache.org>.
Kevin-

On Sep 18, 2006, at 11:19 AM, Kevin Sutter wrote:

> Thanks Craig and Marc,
> I had found this reference in the spec, but it still wasn't clear  
> to me.
> Maybe I'm reading it wrong, but the BNF states (in Section 4.10):
>
> update_item ::= [identification_variable.] {state_field |
> single_valued_association_field} = new_value
>
> I couldn't find the definition of the  
> "single_valued_association_field".  I
> was wondering if there was any implication that this might allow for
> referenced fields.  But, as I continue to look at the spec, I  
> suppose if
> that was to be allowed, they would have specified
> "single_valued_association_path_expression"?  Is that the way you  
> guys are
> reading the spec?

Yeah, they seem to have left "single_valued_association_field" out of  
the BNF, only describing it textually:

"A single_valued_association_field is designated by the name of an  
association-field in a one-to-one or many-to-one relationship. The  
type of a single_valued_association_field and thus a  
single_valued_association_path_expression is the abstract schema type  
of the related entity."

This is a little vague, but give the following path expression BNF:

single_valued_association_path_expression ::= identification_variable. 
{single_valued_association_field.}*single_valued_association_field

... I think it is reasonable to infer that  
"single_valued_association_field" is meant to only be a single field,  
not a series of fields (or else the "*" would not be required).

(in any case, even if the BNF did support it, the OpenJPA back-end  
doesn't efficiently handle anything but updating the top-level fields  
of an entity, so it would be more than just a matter of extending/ 
fixing the parser to support this)



> Even the BNF for "state field" implies that this would work if  
> currentOrder
> was an embedded class...
>
> state_field ::= {embedded_class_state_field.}*simple_state_field
>
> Thanks,
> Kevin
>
> On 9/18/06, Craig L Russell <Cr...@sun.com> wrote:
>>
>> Hi,
>>
>> The JPQL BNF prohibits this operation. From 4.10:
>>
>> update_statement ::= update_clause [where_clause]
>> update_clause ::=UPDATE abstract_schema_name [[AS]
>> identification_variable]
>> SET update_item {, update_item}*
>> update_item ::= [identification_variable.]{state_field |
>> single_valued_association_field}=
>> new_value
>>
>> The update_item must be an identification variable followed by a
>> single "." with a state field or single-valued association field, so
>> no embedded object.
>>
>> Craig
>>
>> On Sep 18, 2006, at 9:37 AM, Kevin Sutter wrote:
>>
>> > Hi,
>> > Does OpenJPA (or JPA, for tha matter) support the updating of  
>> related
>> > objects via JPQL?  For example, should the following query work
>> > where we are
>> > attempting to access the orderId on the related currentOrder  
>> object?
>> >
>> > UPDATE Customer c SET c.currentOrder.orderId = :orderId WHERE  
>> c.id =
>> > :customerId
>> >
>> > As you can guess, we are getting an exception and call stack from
>> > OpenJPA.
>> > But, then we started wondering whether this is even supported by
>> > the JPA
>> > spec.  The spec isn't clear one way or the other (or, at least, I
>> > couldn't
>> > find a definitive answer).  Any ideas?
>> >
>> > In case you were wondering, here's the call stack:
>> >
>> > [9/16/06 16:15:52:953 EDT] 00000032 ExceptionUtil E   CNTR0020E:
>> > EJB threw
>> > an unexpected (non-declared) exception during invocation of method
>> > "openOrder" on bean "BeanId
>> > (OpenJPATestEAR#OpenJPATest.jar#OrderEJB, null)".
>> > Exception data: <4|false|0.9.0-incubating-SNAPSHOT>
>> > org.apache.openjpa.persistence.ArgumentException: An error occurred
>> > while
>> > parsing the query filter 'UPDATE Customer c SET
>> > c.currentOrder.orderId =
>> > :orderId WHERE c.id = :customerId'. Error message:
>> > <4|false|0.9.0-incubating-SNAPSHOT>
>> > org.apache.openjpa.kernel.jpql.ParseException: Encountered "." at
>> > character
>> > 37, but expected: ["="].
>> >    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder
>> > $ParsedJPQL.parse
>> > (JPQLExpressionBuilder.java:1655)
>> >    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder 
>> $ParsedJPQL
>> > .<init>(JPQLExpressionBuilder.java:1638)
>> >    at org.apache.openjpa.kernel.jpql.JPQLParser.parse
>> > (JPQLParser.java:44)
>> >    at  
>> org.apache.openjpa.kernel.ExpressionStoreQuery.newCompilation(
>> > ExpressionStoreQuery.java:141)
>> >    at org.apache.openjpa.kernel.QueryImpl.newCompilation
>> > (QueryImpl.java
>> > :598)
>> >    at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(
>> > QueryImpl.java:581)
>> >    at org.apache.openjpa.kernel.QueryImpl.compileForExecutor
>> > (QueryImpl.java
>> > :608)
>> >    at org.apache.openjpa.kernel.QueryImpl.getOperation
>> > (QueryImpl.java:1421)
>> >    at org.apache.openjpa.kernel.DelegatingQuery.getOperation(
>> > DelegatingQuery.java:120)
>> >    at org.apache.openjpa.persistence.QueryImpl.executeUpdate
>> > (QueryImpl.java
>> > :293)
>> > :
>> > :
>> >
>> > Thanks,
>> > Kevin
>>
>> Craig Russell
>> Architect, Sun Java Enterprise System http://java.sun.com/products/ 
>> jdo
>> 408 276-5638 mailto:Craig.Russell@sun.com
>> P.S. A good JDO? O, Gasp!
>>
>>
>>
>>


Re: Does OpenJPA support updating of related objects via JPQL?

Posted by Kevin Sutter <kw...@gmail.com>.
Thanks Craig and Marc,
I had found this reference in the spec, but it still wasn't clear to me.
Maybe I'm reading it wrong, but the BNF states (in Section 4.10):

update_item ::= [identification_variable.] {state_field |
single_valued_association_field} = new_value

I couldn't find the definition of the "single_valued_association_field".  I
was wondering if there was any implication that this might allow for
referenced fields.  But, as I continue to look at the spec, I suppose if
that was to be allowed, they would have specified
"single_valued_association_path_expression"?  Is that the way you guys are
reading the spec?

Even the BNF for "state field" implies that this would work if currentOrder
was an embedded class...

state_field ::= {embedded_class_state_field.}*simple_state_field

Thanks,
Kevin

On 9/18/06, Craig L Russell <Cr...@sun.com> wrote:
>
> Hi,
>
> The JPQL BNF prohibits this operation. From 4.10:
>
> update_statement ::= update_clause [where_clause]
> update_clause ::=UPDATE abstract_schema_name [[AS]
> identification_variable]
> SET update_item {, update_item}*
> update_item ::= [identification_variable.]{state_field |
> single_valued_association_field}=
> new_value
>
> The update_item must be an identification variable followed by a
> single "." with a state field or single-valued association field, so
> no embedded object.
>
> Craig
>
> On Sep 18, 2006, at 9:37 AM, Kevin Sutter wrote:
>
> > Hi,
> > Does OpenJPA (or JPA, for tha matter) support the updating of related
> > objects via JPQL?  For example, should the following query work
> > where we are
> > attempting to access the orderId on the related currentOrder object?
> >
> > UPDATE Customer c SET c.currentOrder.orderId = :orderId WHERE c.id =
> > :customerId
> >
> > As you can guess, we are getting an exception and call stack from
> > OpenJPA.
> > But, then we started wondering whether this is even supported by
> > the JPA
> > spec.  The spec isn't clear one way or the other (or, at least, I
> > couldn't
> > find a definitive answer).  Any ideas?
> >
> > In case you were wondering, here's the call stack:
> >
> > [9/16/06 16:15:52:953 EDT] 00000032 ExceptionUtil E   CNTR0020E:
> > EJB threw
> > an unexpected (non-declared) exception during invocation of method
> > "openOrder" on bean "BeanId
> > (OpenJPATestEAR#OpenJPATest.jar#OrderEJB, null)".
> > Exception data: <4|false|0.9.0-incubating-SNAPSHOT>
> > org.apache.openjpa.persistence.ArgumentException: An error occurred
> > while
> > parsing the query filter 'UPDATE Customer c SET
> > c.currentOrder.orderId =
> > :orderId WHERE c.id = :customerId'. Error message:
> > <4|false|0.9.0-incubating-SNAPSHOT>
> > org.apache.openjpa.kernel.jpql.ParseException: Encountered "." at
> > character
> > 37, but expected: ["="].
> >    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder
> > $ParsedJPQL.parse
> > (JPQLExpressionBuilder.java:1655)
> >    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL
> > .<init>(JPQLExpressionBuilder.java:1638)
> >    at org.apache.openjpa.kernel.jpql.JPQLParser.parse
> > (JPQLParser.java:44)
> >    at org.apache.openjpa.kernel.ExpressionStoreQuery.newCompilation(
> > ExpressionStoreQuery.java:141)
> >    at org.apache.openjpa.kernel.QueryImpl.newCompilation
> > (QueryImpl.java
> > :598)
> >    at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(
> > QueryImpl.java:581)
> >    at org.apache.openjpa.kernel.QueryImpl.compileForExecutor
> > (QueryImpl.java
> > :608)
> >    at org.apache.openjpa.kernel.QueryImpl.getOperation
> > (QueryImpl.java:1421)
> >    at org.apache.openjpa.kernel.DelegatingQuery.getOperation(
> > DelegatingQuery.java:120)
> >    at org.apache.openjpa.persistence.QueryImpl.executeUpdate
> > (QueryImpl.java
> > :293)
> > :
> > :
> >
> > Thanks,
> > Kevin
>
> Craig Russell
> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
>
>
>
>

Re: Does OpenJPA support updating of related objects via JPQL?

Posted by Craig L Russell <Cr...@Sun.COM>.
Hi,

The JPQL BNF prohibits this operation. From 4.10:

update_statement ::= update_clause [where_clause]
update_clause ::=UPDATE abstract_schema_name [[AS]  
identification_variable]
SET update_item {, update_item}*
update_item ::= [identification_variable.]{state_field |  
single_valued_association_field}=
new_value

The update_item must be an identification variable followed by a  
single "." with a state field or single-valued association field, so  
no embedded object.

Craig

On Sep 18, 2006, at 9:37 AM, Kevin Sutter wrote:

> Hi,
> Does OpenJPA (or JPA, for tha matter) support the updating of related
> objects via JPQL?  For example, should the following query work  
> where we are
> attempting to access the orderId on the related currentOrder object?
>
> UPDATE Customer c SET c.currentOrder.orderId = :orderId WHERE c.id =
> :customerId
>
> As you can guess, we are getting an exception and call stack from  
> OpenJPA.
> But, then we started wondering whether this is even supported by  
> the JPA
> spec.  The spec isn't clear one way or the other (or, at least, I  
> couldn't
> find a definitive answer).  Any ideas?
>
> In case you were wondering, here's the call stack:
>
> [9/16/06 16:15:52:953 EDT] 00000032 ExceptionUtil E   CNTR0020E:  
> EJB threw
> an unexpected (non-declared) exception during invocation of method
> "openOrder" on bean "BeanId 
> (OpenJPATestEAR#OpenJPATest.jar#OrderEJB, null)".
> Exception data: <4|false|0.9.0-incubating-SNAPSHOT>
> org.apache.openjpa.persistence.ArgumentException: An error occurred  
> while
> parsing the query filter 'UPDATE Customer c SET  
> c.currentOrder.orderId =
> :orderId WHERE c.id = :customerId'. Error message:
> <4|false|0.9.0-incubating-SNAPSHOT>
> org.apache.openjpa.kernel.jpql.ParseException: Encountered "." at  
> character
> 37, but expected: ["="].
>    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder 
> $ParsedJPQL.parse
> (JPQLExpressionBuilder.java:1655)
>    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL
> .<init>(JPQLExpressionBuilder.java:1638)
>    at org.apache.openjpa.kernel.jpql.JPQLParser.parse 
> (JPQLParser.java:44)
>    at org.apache.openjpa.kernel.ExpressionStoreQuery.newCompilation(
> ExpressionStoreQuery.java:141)
>    at org.apache.openjpa.kernel.QueryImpl.newCompilation 
> (QueryImpl.java
> :598)
>    at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(
> QueryImpl.java:581)
>    at org.apache.openjpa.kernel.QueryImpl.compileForExecutor 
> (QueryImpl.java
> :608)
>    at org.apache.openjpa.kernel.QueryImpl.getOperation 
> (QueryImpl.java:1421)
>    at org.apache.openjpa.kernel.DelegatingQuery.getOperation(
> DelegatingQuery.java:120)
>    at org.apache.openjpa.persistence.QueryImpl.executeUpdate 
> (QueryImpl.java
> :293)
> :
> :
>
> Thanks,
> Kevin

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!


Re: Does OpenJPA support updating of related objects via JPQL?

Posted by Marc Prud'hommeaux <mp...@apache.org>.
Kevin-

The only thing that can be updated in a bulk update statement is a  
field in the Entity that is the subject of the UPDATE statement  
without any traversals, as per:

4.10 Bulk Update and Delete Operations

Bulk update and delete operations apply to entities of a single  
entity class (together with its subclasses, if any). Only one entity  
abstract schema type may be specified in the FROM or UPDATE clause.  
The syntax of these operations is as follows:

update_statement ::= update_clause [where_clause]
update_clause ::= UPDATE abstract_schema_name [[AS]  
identification_variable] SET update_item {, update_item}*
update_item ::= [identification_variable.]{state_field |  
single_valued_association_field} = new_value




On Sep 18, 2006, at 9:37 AM, Kevin Sutter wrote:

> Hi,
> Does OpenJPA (or JPA, for tha matter) support the updating of related
> objects via JPQL?  For example, should the following query work  
> where we are
> attempting to access the orderId on the related currentOrder object?
>
> UPDATE Customer c SET c.currentOrder.orderId = :orderId WHERE c.id =
> :customerId
>
> As you can guess, we are getting an exception and call stack from  
> OpenJPA.
> But, then we started wondering whether this is even supported by  
> the JPA
> spec.  The spec isn't clear one way or the other (or, at least, I  
> couldn't
> find a definitive answer).  Any ideas?
>
> In case you were wondering, here's the call stack:
>
> [9/16/06 16:15:52:953 EDT] 00000032 ExceptionUtil E   CNTR0020E:  
> EJB threw
> an unexpected (non-declared) exception during invocation of method
> "openOrder" on bean "BeanId 
> (OpenJPATestEAR#OpenJPATest.jar#OrderEJB, null)".
> Exception data: <4|false|0.9.0-incubating-SNAPSHOT>
> org.apache.openjpa.persistence.ArgumentException: An error occurred  
> while
> parsing the query filter 'UPDATE Customer c SET  
> c.currentOrder.orderId =
> :orderId WHERE c.id = :customerId'. Error message:
> <4|false|0.9.0-incubating-SNAPSHOT>
> org.apache.openjpa.kernel.jpql.ParseException: Encountered "." at  
> character
> 37, but expected: ["="].
>    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder 
> $ParsedJPQL.parse
> (JPQLExpressionBuilder.java:1655)
>    at org.apache.openjpa.kernel.jpql.JPQLExpressionBuilder$ParsedJPQL
> .<init>(JPQLExpressionBuilder.java:1638)
>    at org.apache.openjpa.kernel.jpql.JPQLParser.parse 
> (JPQLParser.java:44)
>    at org.apache.openjpa.kernel.ExpressionStoreQuery.newCompilation(
> ExpressionStoreQuery.java:141)
>    at org.apache.openjpa.kernel.QueryImpl.newCompilation 
> (QueryImpl.java
> :598)
>    at org.apache.openjpa.kernel.QueryImpl.compileForCompilation(
> QueryImpl.java:581)
>    at org.apache.openjpa.kernel.QueryImpl.compileForExecutor 
> (QueryImpl.java
> :608)
>    at org.apache.openjpa.kernel.QueryImpl.getOperation 
> (QueryImpl.java:1421)
>    at org.apache.openjpa.kernel.DelegatingQuery.getOperation(
> DelegatingQuery.java:120)
>    at org.apache.openjpa.persistence.QueryImpl.executeUpdate 
> (QueryImpl.java
> :293)
> :
> :
>
> Thanks,
> Kevin