我有一个数据库布局,其中我的员工和我的近亲都有一个地址。
所以我的钥匙是这样布置的:
Address
----------
addressID
Employee
----------
employeeID
addressID
NextOfKin
----------
nextOfKinID
addressID
在 MyBatis 中,我的关联设置如下:
<resultMap id="employeeMap" type="employee">
<id column="employeeID" property="employeeID" />
<association property="address" column="addressID" resultMap="addressMap" />
</resultMap>
<resultMap id="addressMap" type="address">
<id column="addressID" property="addressID" />
</resultMap>
这是插入语句。employeeID 是自动递增的,所以我把它省略了。
<insert id="insert">
INSERT into Employees (addressID)
VALUES (#{address.addressID})
</insert>
员工对象:
Employee{
int employeeID
Address address
}
因此,当员工注册并设置帐户时,他们还没有地址。所以addressID应该为空。
当我插入一条记录时,我收到“列'addressID'不能为空”的错误。当我将它从插入语句中取出时,它会引发错误“字段'addressID'没有默认值”。
我希望能够添加一个员工,然后再添加地址和关系..
这是布置表格/关系的坏方法吗?我似乎找不到将地址存储为空的方法..