Spring JdbcTemplate не может получить идентификатор вставки из MySQL

Я пытаюсь вставить строку в таблицу 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");
    }
5
задан Nik 19 February 2012 в 16:21
поделиться