2016-05-28 11 views
0

テーブルにデータを挿入しようとしたとき、私はいつもExceptionと答えました。idNULLです。ここで コードです:MyBatisでgeneratedIdを使用して挿入するには?

@Insert({ 
    "insert into device (tag)", 
    "values (#{tag,jdbcType=VARCHAR})" 
}) 
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id") 
int insert(Device record); 

また、私は

@SelectKey(before = true, keyColumn = "id", 
    keyProperty = "id", 
    resultType = Integer.class, 
    statement = "SELECT SCOPE_IDENTITY()") 

を追加しようとしました。しかし、まだエラーが発生しました。次に、SQL(SELECT SCOPE_IDENTITY())を実行し、nullを取得します。

環境は次のとおりです。MyBatis 3.4.0SQL Server 2008

+0

例外に関する詳細を投稿できますか? – Blank

+0

@Renoこれは、null以外の列にnullを挿入できないことを示しています。 mybatisが 'id'カラムをNULLに設定しているようです。ですから、 'SELECT SCOPE_INDENTITY()'はnullを取得すると思います。 – blackdog

+0

ええ、あなたの列 'id'は自動インクリメントですか?このエラーはSQLエラーのようです。 – Blank

答えて

0

Spring-Bootがあなたの@SelectKey注釈にbefore=falseを設定してみてください。

関連する問題