有3个,pojo
即EmployeeMaster
(父类)和Hr
(Personal
EmployeeMaster的子类)。
然后我有 3 个单独的表,每个表pojo
构造为:
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>
现在的问题是,我不想要任何null
行并且想将相同的数据提交emp_code
到其他表中,即hr
和personal
。
但是当我尝试将数据提交到hr
表中emp_code 101
时,master table
我收到一条错误消息Duplicate entry '101' for key 'PRIMARY'
。
如果我generator class to increment
在映射 xml 中更改,我会得到一行空值,用于从子类插入的数据。我想要的是三个表中的条目相同employee code
。我该怎么做呢 ?