我正在使用Dropwizard和JDBI,并希望insert语句自动生成密钥。
我的表'数据集'的格式为
SELECT * FROM dataset ;
id xaxis yaxis
---------- ------------------- -----------------
1 230,234,23,423,4234 32,34,234,23,4234
对于我的DAO我添加了注释
@GetGeneratedKeys
@SqlUpdate("INSERT INTO DATASET (XAXIS, YAXIS) VALUES (:xaxis,:yaxis)")
long insert(@Bind("xaxis") String xaxis, @Bind("yaxis") String yaxis);
我将方法覆盖为
@Override
public long insert(Dataset dataset) {
return datasetJBDIDao.insert(dataset.getXaxis(), dataset.getYaxis());
}
作为资源我运行
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response insertDataset(Dataset dataset) {
long id = datasetDao.insert(dataset);
Dataset toReturn = new Dataset(id, dataset.getXaxis(), dataset.getYaxis());
return Response.ok(toReturn).build();
}
但是,每次我使用正文运行Post请求时,都会添加数据但没有id值
SELECT * FROM dataset ;
id xaxis yaxis
---------- ------------------- -----------------
1 230,234,23,423,4234 32,34,234,23,4234
1,2,3,4,5 1,3,4,6,7
有人知道如何解决这个问题