6

正直なところ、エイリアスについて少し混乱しているので、誰かがエイリアスをよりよく理解するのを手伝ってくれることを願っています. 不足しているものを説明するために、例を使用します。

私が持っているとしましょう:

Criteria criteria = session.createCriteria(Car.class)
criteria.createAlias("doors", "doors");

つまり、いくつかの制限を使用して、の左側Carまたはそれらの線に沿った何かにあるドアを見つけることができます。

ここで私の質問は、複数のエイリアスをどこに追加するかです:

criteria.createAlias("doors", "doors").createAlias("doors.keytype", "keytype");

criteria.createAlias("tier".tier);

これは何を意味するのでしょうか?criteriaオブジェクトにこれらすべてのエイリアスがあることを確認しますか? その場合、getAlias()メソッドは何を返しますか?

API から:

この基準インスタンスによってカプセル化されたエンティティのエイリアスを取得します。

すべてのエイリアスがこのインスタンスによってカプセル化されているという印象を受けましたか? 私が間違っている?どういうわけか最初のエイリアスを失いましたか?

また、次のようなことをすると:

Criteria criteri2 = criteria.createAlias("tier".tier);

これは、criteriacriteria2ポイント の両方が同じCriteriaか、どちらがどのエイリアスを指しているのか違いますか?

さらに、それぞれcreateAliasが a を返すことを考えると、それをオリジナルまたは新しいものCriteriaに割り当てる必要がありますか?criteria

私の混乱を理解していただければ幸いです。

4

1 に答える 1