2011-05-13 10 views
0

からのみベーステーブルクエリは、私は、このマッピングHQL:<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の参加を、持っています。 しかし、いつも 'Photo'プロパティが必要なわけではないので、HQLにpersonテーブルからのクエリだけを伝えることは可能ですか?そしてどうやって?

答えて

0

personとpersonPhoto列の間に1対1の関係はありますか?

人の写真をゆっくりと読み込みたい場合は、1対1マッピングへの結合マッピングを変更し、personPhotoの新しいクラスを作成する必要があると思います。このようにして、Hibernateはプロキシオブジェクトを挿入することができます。

+0

はい、データベースには1対1の関係があります。残念ながら私は新しいクラスpersonPhotoを追加できません。 – bohebolo

+0

私はあなたが運が悪いことを恐れています。 Hibernateはレイジーローディングプロキシの基底クラスを必要とします。 – Olaf

+0

これは非常にイライラですが、他の方法や回避策はありませんか?データベースを変更することはできないため、新しいドメインオブジェクトを追加するアクセス権がありません。何か案が?誰でも? – bohebolo

関連する問題