0

ストラットとデータベースへのレコードの挿入に問題があります

データベースはこんな感じ

マップは次のとおりです。

<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>

これは従業員オブジェクトです:

public class Employee{

private static final long serialVersionUID = 1L;

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

上記の関係を保存することに関して、私のテーブルはどのように見えるべきですか?

この時点で、Employees テーブルは次のようになります。

そして、「addressIDにデフォルト値がありません」のようなエラーが表示され続けます すべてが正しい方法でレイアウトされていますか、それとも何か不足していますか?

4

1 に答える 1

1

従業員を挿入しようとしていますが、欠落addressIDしており、挿入するにはこの属性が必要です。挿入クエリではなく、マッピングを表示しているためだと思います。

データベースにテーブルを作成するとき、列の「デフォルト値」を選択できます。レジスターを挿入して列を見逃すと、そのデフォルト値が使用されます。あなたがミスaddressIDし、どちらのデフォルト値もないので、エラーが発生します。

したがって、address属性を作成し、挿入クエリでEmployee使用します。id

于 2013-03-08T06:51:04.027 に答える