(親クラス)と(EmployeeMaster の子クラス) の3pojo
つがあります。EmployeeMaster
Hr
Personal
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
の両方の外部キーです。hr
personal
データを取り込むために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_code
hr
personal
hr
しかし、 のテーブルにデータを送信しようとするとemp_code 101
、 に既に存在するmaster table
というエラーが表示されますDuplicate entry '101' for key 'PRIMARY'
。
generator class to increment
マッピング xml でを変更すると、子クラスから挿入されたデータに対して null 値を持つ行が取得されます。必要なのは、同じ を持つ 3 つのテーブルへのエントリemployee code
です。これを行うにはどうすればよいですか?