2011-03-02 14 views
4

HQLクエリでは、すべてのフィールドを1つだけ取り出すことができます。HQLクエリから特定のフィールドを除いたもの

session.get(entityClass, id).withoutThisField(fieldNotDesired) 

::私はクラスPicture(int id, String name , byte[] file)を持っているような

何か。

フィールドファイル以外のすべての画像を取得します。

私は正確にフィールドが必要な場合はそれを行うことができますが、新しいフィールドが追加されるたびにクエリを更新したくありません。

フィールドがBLOBの場合は、必要な場合にのみ取得されます。私の場合ではありません。
正確なフィールドへのバイトコード計装lazy=trueは機能しません。私には奇妙な例外があります。

ありがとうございます。

答えて

1

私は、継承クラスを使用することをお勧めします。

PictureFileをPictureのサブクラスにして、1つのフィールドファイルだけを追加します。

あなたの例では、画像を取得できます。 blobファイルを作成する必要があるときは、PictureFileを取得します。

このような特定のニーズに基づいて、エンティティの複数の代替マッピングを作成することがよくあります。

関連する問題