(親クラス)と(EmployeeMaster の子クラス) の3pojoつがあります。EmployeeMaster HrPersonal
pojo次に、次のように構築された、それぞれに 3 つの個別のテーブルがあります。
create table emp_master(emp_code integer,emp_name text,emp_desig text,
emp_dept text,primary key(emp_code));
create table hr(emp_code integer,salary integer,hra integer,da integer,
taxes integer,grade text,foreign key(emp_code) references emp_master(emp_code));
create table personal(emp_code integer,address text,married bool,
foreign key(emp_code) references emp_master(emp_code));
emp_codeは の主キーであり、とテーブルemp_masterの両方の外部キーです。hrpersonal
データを取り込むために3 つの個別のjspフォームを作成しました。
以下はhibernate mappingファイルです:
<hibernate-mapping>
<class name="pojo.EmployeeMaster" table="emp_master">
<id name="emp_code">
<generator class="assigned" />
</id>
<property name="emp_dept" />
<property name="emp_desig" />
<property name="emp_name" />
<joined-subclass name="pojo.Hr" table="hr">
<key column="emp_code" />
<property name="da" />
<property name="grade" />
<property name="hra" />
<property name="salary" />
<property name="taxes" />
</joined-subclass>
<joined-subclass name="pojo.Personal" table="personal">
<key column="emp_code" />
<property name="address" />
<property name="married" />
</joined-subclass>
</class>
</hibernate-mapping>
問題は、行が不要で、同じ行のデータを他のテーブル、つまりandnullに送信したいということです。emp_codehrpersonal
hrしかし、 のテーブルにデータを送信しようとするとemp_code 101、 に既に存在するmaster tableというエラーが表示されますDuplicate entry '101' for key 'PRIMARY'。
generator class to incrementマッピング xml でを変更すると、子クラスから挿入されたデータに対して null 値を持つ行が取得されます。必要なのは、同じ を持つ 3 つのテーブルへのエントリemployee codeです。これを行うにはどうすればよいですか?