のは、私はこのようになりますクラスがあるとしましょうNHibernateのQueryOverとアクセス=「フィールド」のメンバー
public class Entity{
public virtual int ID{
{
get{return id;}
}
private int id = 0;
}
私は、ユーザーのIDが含まれてQueryOverを使用したい場合は、どのように私はそうのようにフィールドをバインドすることを考えると、これを達成します:
<id name="id" column="UserID" access="field" unsaved-value="0">
<generator class="identity" />
</id>
私のクエリのフィールドにアクセスできる方法はありますか?公有財産と一緒に使用しようとすると、実際にHBMに拘束されていない財産に関する問題に遭遇することになります。
このような状況をHQLが処理できるとすれば、QueryOver
でも可能ですか?余談として
: 私はID
はバッキングフィールドなしで公共財産であることや、民間のセッターを持つべきであると主張するだろうが、私は(このパターンは、私たちのドメインでどこにでもある)、このような抜本的な変更を行うのを警戒しています。
私はあなたの問題が何であるかを見ていないよ(私の個人的な好みは、私のクエリインナークラスを作ることです。) IDはパブリックプロパティなので、QueryOverで利用できるようにする必要があります。また、私はIDをプライベートセッターの自動プロパティにすることに何の利益も見ませんが、マッピングは変更されません。私はEntityクラスをそのまま残したいと思うでしょう。 –
問題は、プロパティが存在しても、NHibernateに明示的にバインドされていないことです。これは、SQLを生成するときにQueryOverがプロパティを解決できないことを意味します。 – ddango