문제

기준 API를 사용하여 다음 HQL 쿼리를 코딩하려고합니다.

var userList = _session
                .CreateQuery("select u from User u where u.Role.ID=3 and u.Customer.ID=:cID")
                .SetInt32("cID", 1)
                .List<User>();

(3 nhibernate 객체 : 사용자 (ID, 이름, 역할, 고객), 역할 (ID, 이름) 및 고객 (ID, 이름).

다음을 시도했지만 Nhibernate가 역할과 관련된 고객을 찾으려고 시도하기 때문에 작동하지 않습니다.

var userList = _session
            .CreateCriteria(typeof(User))
            .CreateCriteria("Role")
            .Add(Restrictions.Eq("ID", 3) )
            .CreateCriteria("Customer")
            .Add(Restrictions.Eq("ID", 1) )
            .List<User>();

다른 방법으로 (작동합니다!)

도움이 되었습니까?

해결책

별명을 사용할 수 있습니다

var userList = _session
        .CreateCriteria(typeof(User), "u")
        .CreateAlias("u.Role", "r")
        .Add(Restrictions.Eq("r.ID", 3) )
        .CreateAlias("u.Customer", "c")
        .Add(Restrictions.Eq("c.ID", 1) )
        .List<User>();

도움이되기를 바랍니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top