HQL:仅查询<join> entity </join>中的基表

时间:2011-05-13 13:32:17

标签: nhibernate join

我有这个映射

<class name="Person" table="person">
<id name="Id" column="id" type="Int32" unsaved-value="0">
  <generator class="native" />
</id>

<property name="Code" column="code" type="String" not-null="true" />
<property name="FirstName" column="firstName" type="String" not-null="true" />
<property name="MiddleName" column="middleName" type="String" not-null="false" />
<property name="LastName" column="lastName" type="String" not-null="false" />

<join table="personPhoto" optional="true">
  <key column="personId" />
  <property name="Photo" column="pictureContent" not-null="false" />
</join>

并且生成的SQL总是使用左外连接,这是正确的。 但是,是否有可能告诉HQL只从person表中查询,因为我并不总是需要'Photo'属性?怎么样?

1 个答案:

答案 0 :(得分:0)

person和personPhoto列之间是否存在一对一的关系?

如果您想懒洋洋地加载此人的照片,我相信您必须将连接映射更改为一对一映射并为personPhoto创建一个新类。这样Hibernate就能插入代理对象。