How to join Two tables of two non relashinship defined columns using Nhibernate QueryOver

后端 未结 1 574
一向
一向 2020-12-04 03:27

Using NHibernate QueryOver, I want to join two tables using two columns which are not defined in the mapping as a relationship.

E.g. This is not my exac

相关标签:
1条回答
  • 2020-12-04 04:16

    There are similar questions, e.g.

    • NHibernate (+ FluentNhibernate) : Join two detached tables
    • Hibernate Criteria Projection without mapped association of tables

    And the answer is:

    1. either use HQL and CROSS JOIN (with WHERE)
    2. There is NO way how to do that with QueryOver/Criteria)

    See the doc:

    14.2. The from clause

    Multiple classes may appear, resulting in a cartesian product or "cross" join.

    from Formula, Parameter
    
    from Formula as form, Parameter as param
    

    So using HQL in your case, we can do it like this:

    SELECT ...
    FROM EMPLOYEE E, DEPARTMENT D 
    WHERE D.Code = E.SomeCode
    ...
    

    BUT I would suggest: create that mapping in the code. Simply introduce many-to-one relation. It will be loaded lazily (only if used) and will nicely serve to our needs - be used in QueryOver as a relation for Join

    If there is such relation, if this exist in the business object domain, we should not be scared to use it. We can hide it via security etc...

    0 讨论(0)
提交回复
热议问题