你可以使用JDBI,@ LabelBean,@ SqlQuery注释调用对象上的方法吗?

时间:2018-02-20 21:00:55

标签: java javabeans jdbi

我正在尝试为JDBI中的对象调用包装器方法。包装器方法不对应于对象的任何字段,而是规范化(格式化)它,然后返回一个字符串。以下是我的班级 -

Class Car {
   String make;
   String model;
   //...
   //getters for make and model

   //wrapper method
   public String getCarDescription(){
      return "Make: " + make + " Model: " + model;
   }
}

我的问题是 - 我可以在JDBI @SqlQuery()中调用getCarType()吗?像这样 - >

@SqlQuery("select * from car where car_description = :car.carDescription")
public abstract Car getCarDescription(@BindBean("car") Car car);

我尝试过这样做,但JDBI没有返回正确的结果。更令人沮丧的是,JDBI不会抛出任何错误,或者说是否以这种方式调用对象上的方法是否正常(或不行)。

1 个答案:

答案 0 :(得分:1)

是的,JDBI可以绑定到具有getter格式的对象上的方法。我刚刚创建了一个简单的project,我已经复制了这个场景。我在提供的代码中注意到的一件事是绑定注释@BeanBind的名称不正确,而应该是@BindBean:

@SqlQuery("select * from car where car_description = :car.carDescription")
Car getCarDescription(@BindBean("car") Car car);