As Fabio spotted, I've written the 2nd hql query wrong - it should read:

  var q = session.CreateQuery("select so from ScheduleOccurrence so,
ScheduleOccurrence so2 where so.Start = so2.End");

  q.SetLockMode("so2", LockMode.Force);

(I've spent so long dealing with the internal ASL for HQL that I'm
forgetting what the string representation looks like!) Same behaviour with
the locking though - it throws "{"could not locate alias to apply lock mode
: so2"}"

On Wed, Sep 22, 2010 at 11:10 PM, Steve Strong <[email protected]> wrote:

> Hi Chaps,
>
> Just playing with adding support for LockModes to the Linq provider and
> wanted to get a quick view on it's expected operation.  For a simple HQL
> query such as
>
>   var q = session.CreateQuery("select so from ScheduleOccurrence so");
>   q.SetLockMode("so", LockMode.Force);
>
> I have some corresponding Linq working:
>
>   from so in session.Query<ScheduleOccurrence>().LockMode(LockMode.Force)
>   select so;
>
> I was then starting to look at locking on joins and discovered that the
> following HQL doesn't work:
>
>   var q = session.CreateQuery("select so from ScheduleOccurrence so from
> ScheduleOccurrence so2 where so.Start = so2.End");
>
>   q.SetLockMode("so2", LockMode.Force);
>
> So the question is, should it? Is this a bug in the HQL parser or are lock
> modes on additional From clauses not supported?
>
> Cheers,
>
> Steve
>
>

Reply via email to