Fetch lazy objects in NHibernate C#

I have three objects...

public class Obj1
{
    ...
    public virtual Obj2 Obj2 { get; set; }
}

public class Obj2
{
    ...
    public virtual Obj3 Obj3 { get; set; }
}

public class Obj3
{
    ...
}

And here is my mapping...

public class Obj1:ClassMap<Obj1>
{
     public Obj1Map()
     {
        ...
        References(x => x.Obj2, "Obj2Id").Not.LazyLoad();
     }
}

public class Obj2:ClassMap<Obj2>
{
     public Obj2Map()
     {
        ...
        References(x => x.Obj3, "Obj3Id").LazyLoad();
     }
}

public class Obj3:ClassMap<Obj3>
{
     public Obj3Map()
     {
        ...
     }
}

I wanna get data from database by the following code...

session.Query<Obj1>().Select(x => new { x.Obj2, x.Obj2.Obj3 });

But here i can't get Obj3 of Obj2 of Obj1 because in Obj2 mapping Obj3 is lazy and in Obj1 mapping Obj2 is not lazy so i can't use thenfetch method in my case! The question is how can i use fetch method here? Right now i'm using the following code...

session.Query<Obj1>().Fetch(x => x.Obj2.Obj3).Select(x => new { x.Obj2, x.Obj2.Obj3 });

But it doesn't work...! Please help me! Thanks...