2016-08-30 104 views
0

我想只在空值時才插入非空值。如果爲null,則讓DB插入默認值。myBatis有條件地插入非空值

<insert id ="inventorySave"> 
<[CDATA[ 

INSET INTO inventory 
(itemname,amount,id,level) 
values 
]] 
<foreach item="inventory" collection="inventoryies" separator=","> 
<[CDATA[ 
(#{inventory.itemName},#{inventory.amount}, #{inventory.id}, #{inventory.level}) 
]] 
</foreach> 
</insert> 

我想檢查'level'的值是一個有效的字符串:'普通','重要','嚴重'。如果它具有空字符串或null,則不應指定任何值,並讓數據庫決定插入其默認值。

任何人都可以告訴我如何有條件地插入記錄。

回答

1

給所有dymanic值及其等價jdbc類型,數據庫列類型到acheive你所期望的。

例如從上面的查詢變化低於level和類似的其他實體:

#{inventory.level,jdbcType=NVARCHAR} 
    //assuming the equivalent column type in database for itemname is varchar.