0
私はUser
という名前の単一クラスを持ち、このクラスではUserRole
のenum値のコレクションを持っています。NHibernateの基準が多数の列挙型値を結合します
public class User {
...
public ICollection<UserRole> UserRoles { get; private set; }
...
}
[Flags]
public enum UserRole {
Beginner = 1,
Advanced = 2,
Expert = 4,
Admin = 8
}
User
UserRole
の関係は3つのテーブル(tblUser、tblRole、およびユーザーIDとのみroleIdを有するtblUserRole)と多対多の関係と実行されます。 HBMは以下の通りである。
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-lazy="false">
<class name="User, SampleDll" table="tblUser">
...
<bag name="UserRoles" table="tblUserRole" cascade="all-delete-orphan" fetch="join">
<key column="UserId"/>
<element column="RoleId" type="UserRole, SampleDll" />
</bag>
...
</class>
</hibernate-mapping>
は、今私がいる(使用してqueryOverまたはデタッチの基準のいずれかを、このような基準を実現することが可能です
select u.* from tblUser u
left join tblUserRole ur on ur.UserId = u.UserId
where ur.RoleId = @USER_ROLE
と同じsematicsを持つ基準を作成したいです)UserRole
列挙型の別個のマッピングファイルを持たずに?
ありがとうございます。
ルックス