以前一直用的ibatis,前陣子才改用的mybatis,對於一些細節不太了解,所以踩了這個坑。廢話不多說,上**。
下面是出問題的sql語句:
insert into g_label_obj_relation_his
(id_label_obj_relation,
id_label,
followed_obj_code,
followed_obj_role,
label_source,
add_person,
add_person_role,
created_by,
date_created,
updated_by,
date_updated,
delete_person,
delete_date)
select sys_guid(),
rel.id_label,
rel.followed_obj_code,
rel.followed_obj_role,
rel.label_source,
rel.add_person,
rel.add_person_role,
rel.created_by,
rel.date_created,
rel.updated_by,
rel.date_updated,
#,sysdate
from g_label_obj_relation rel
where rel.id_label_obj_relation = #
。複製一下那位大哥的回答:
我也遇到了同樣的問題,語句是正常的,我找了一下原因 是mybatis的這個usegeneratedkeys屬性的問題,
官網的解釋是
允許 jdbc 支援自動生成主鍵,需要驅動相容。如果設定為 true 則這個設定強制使用自動生成主鍵,儘管一些驅動不能相容但仍可正常工作(比如 derby)。
我寫成了這樣就不報錯了
於是我去**裡找了一下usegeneratedkeys,果然看到了這個屬性為true:
複製**
於是在標籤裡加上了usegeneratedkeys="false",果然可以正常執行了。這個是關於usegeneratedkeys引數的一些拓展說明:
mongodb的乙個小坑
若collection裡有其他的資料,顯示時注意要往query裡新增true,並且需要放在最前面。解釋 下圖是名為test的collection裡面的資料。可以看到上面5條是一樣的資料,第6條是為了測試故意新增進去的。首先,當你執行命令db.getcollection test find 結果如下。...
sprintf sscanf中的乙個小坑
char buf 32 sprintf buf,s,d test 100 char out 32 int i 0 sscanf buf,s,d out,i 這段 開始以為會正常執行,結果卻是crash。sscanf在解析 s的時候遇到空格 指標符號 n才會停止解析,而這個 s後面的逗號基本上是乙個擺...
最近踩的乙個小坑
最近需要實現乙個業務,大致的內容是為了提高效率,把資料庫中的資訊定時同步到記憶體中,然後使用記憶體查詢,提高效率。然後在實現過程中遇到了乙個問題,需要同步的資訊約9萬條,但是這9w條資料對應了133w個,大概乙個id十幾張吧。儲存這些的時候,遇到了小問題。專案原本使用的結構是 list vin1,1...