1
私は以下のようなテーブルを持って、休止子テーブル更新親オブジェクト
役割:
Role_Id Role_Name
201 Manager
202 Supervisor
ユーザー:
User_ID User_Name Role_Id
1 John 201
2 Peter 202
3 Raj 202
私はPOJOを作成し、両方のテーブルのためのマッピングファイルを休止しています。
マッピングファイル:
//RoleVO
<class name="RoleVO" table="tbl_Role">
<id name="roleId" column="role_Id" >
<generator class="identity"/>
</id>
<property name="roleName" column="Role_Name" />
</class>
//UserVO
<class name="UserVO" table="tbl_User">
<id name="userId" column="user_Id" >
<generator class="identity"/>
</id>
<property name="userName" column="User_Name" />
<many-to-one name="Role" class="RoleVO" column="Role_Id"/>
</class>
私は休止状態からのユーザー表にユーザーの詳細を挿入すると、私は役割REFを取得し、ユーザーオブジェクトに直接それを設定する必要があり、私はUserテーブルに「ロールID」を追加することができます。用など。
、//First approach:
UserVO usr = new UserVO();
usr.serUserName("Kumar");
usr.setRoleId(202);
session.save(usr);
or
//Second Approach:
UserVO usr = new UserVO();
usr.serUserName("Kumar");
RoleVO role = session.get(RoleVO.class, 202);
usr.setRole(role);
session.save(usr);
最善のアプローチである
?最初か二番目?
ハイバーネーションマッピングコードを書くことができますので、SOユーザーが適切な回答を得ることができますか? –
2番目の方法であるIMHOは、 '多対1 'の関連付けで冬眠するように指示したように、' Role'オブジェクトに数値を渡さないようにする最初の方法は機能しません。冬眠はOriented Relational Mappingフィールド用でないオブジェクト用! –
私は 'new UserVO(" Kumar "、session.get(RoleVO.class、202))'のようなことをして、 'UserVO'を構築できるように引数を取るコンストラクタを追加するという考えも考えてみましょう。 – Naros