This seems to have been fixed in trunk as of two days ago:
http://216.121.112.228/browse/NH-2280

I just ran into it with 3.0.0 final and am moving to trunk, tonight.

On Jan 18, 3:41 am, Glenn <[email protected]> wrote:
> I'm using NHibernate 3.0 LINQ against an Oracle 11g R2 and wanted to use the
> .Any statement in LINQ
>
> from p in session.Query<Project>()
>    where p.Personprojects.Any(pp => pp.Id.PersonId == userId)
>    select p
>
> (pp.Id is a composite ID with PersonId and ProjectId)
>
> This creates the following SQL:
>
> select
>  project0_.PROJECT_ID as PROJECT1_92_,
>  (... lots of properties snipped...),
>  project0_.VALIDTODATE as VALIDTO25_92_
> from PROJECT project0_
> where exists (
> select
>  (
> personproj1_.PROJECT_ID,
>  personproj1_.PERSON_ID)
>
> from PERSONPROJECT personproj1_
> where project0_.PROJECT_ID=personproj1_.PROJECT_ID and
>  personproj1_.PERSON_ID=4042 /* :p0 */)
>
> Oracle complains with "ORA-00907: missing right parenthesis"
>
> I narrowed it down to the parentheses in the second select:
>
> select
>  (
>   personproj1_.PROJECT_ID,
>   personproj1_.PERSON_ID)
>
> If I remove those the query works fine.
>
> Oracle doesn't like parentheses around column names in it's select. A simple
>
> select (PROJECT_ID, PERSON_ID)
> from PERSONPROJECT  
>
> will also fail.
>
> Is this an NHibernate bug or am I doing something stupid? If I wanted to
> change this behavior in NHibernate and make a patch, do you have any
> pointers to where in the NHibernate source I should start?

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to