Dropwizard JDBI在插入时自动生成值

时间:2018-04-04 09:50:51

标签: java rest dropwizard jdbi

我正在使用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  

有人知道如何解决这个问题

0 个答案:

没有答案