Mysql table is like
CREATE TABLE `User` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `telphone` varchar(32) NOT NULL,
  `name` varchar(64) NOT NULL DEFAULT '',
  `password` varchar(64) NOT NULL DEFAULT '',
  `balance` int(11) NOT NULL DEFAULT '0',
  `user_type` int(2) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `phone_index` (`telphone`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8;
And the code I write is :
@Service
public class CommonDao {
    @Resource
    private DSLContext jooqContext;
    public <R extends Record> R insertAndGet(Table<R> table, R r, Field<?>... f) {
        return jooqContext.insertInto(table).set(r).returning(f).fetchOne();
    }
}
It always return null when I use the insert and get, and the data actually insert into the database. But When I delete the unique key in the mysql, It works fine.