0

我在使用 struts 并将记录插入数据库时​​遇到了一些问题

数据库是这样的

以下是地图:

<mapper namespace="Employees">
<resultMap id="employeeMap" type="employee">
    <id column="employeeID" property="employeeID" />
    <result column="employeeNum" property="employeeNum" />
    <result column="username" property="userName" />
    <result column="firstName" property="firstName" />
    <result column="lastName" property="lastName" />


    <association property="address" column="addressID" resultMap="addressMap" />
</resultMap>

<resultMap id="addressMap" type="address">
    <id column="addressID" property="id" />
    <result column="addressLine1" property="addressLine1" />
    <result column="addressLine2" property="addressLine2" />
    <result column="city" property="city" />
    <result column="postcode" property="postcode" />
    <result column="country" property="country" />
</resultMap>

这是 Employee 对象:

public class Employee{

private static final long serialVersionUID = 1L;

private int employeeID;
private String employeeNum;
private String firstName;
private String lastName;

关于存储上述关系,我的表应该如何?

此时,Employees 表看起来像:employeeID employeeNum firstName lastName addressID

而且我不断收到错误消息,例如“addressID 没有默认值”是所有内容都按照应有的方式布置还是我遗漏了什么?

4

1 回答 1

1

您正在尝试插入一名员工,但您丢失了addressID,并且需要此属性才能插入它。我猜是因为您向我们展示了映射,而不是插入查询。

在数据库中创建表时,可以为列选择“默认值”。当您插入一个寄存器并错过一列时,将使用其默认值。你错过了addressID,也没有它的默认值,所以你得到一个错误。

因此,为您创建一个address属性并在插入查询中Employee使用它。id

于 2013-03-08T06:51:04.027 回答