Я пытаюсь вставить строку в таблицу MySQL и получить ее идентификатор вставки. Мне известна функция MySQL last_insert_id ()
, мне просто не удается заставить ее работать. В настоящее время я пытаюсь использовать функцию, аннотированную как транзакцию, и мне возвращается только 0. Я использую Spring 3.1.
@Transactional (propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
private long insertTransactionRecord
(
int custID,
int porID,
String date,
short crvID
) {
m_template.update ("INSERT INTO " +
" transaction " +
"( " +
" por_id, " +
" cust_id, " +
" trans_date, " +
" crv_id " +
") " +
"VALUES " +
"( " +
" ?, " +
" ?, " +
" ?, " +
" ? " +
")",
new Object[] {
porID,
custID,
date,
crvID
});
return m_template.queryForLong ("SELECT " +
" last_insert_id() " +
"FROM " +
" transaction " +
"LIMIT 1");
}