我正在使用mybatis 3。 我正在使用@select注释在mapper iterface中编写select查询。
示例:
@Select("select * from EMPLOYEE where ID>55")
public List<Employee> getEmployees();
有没有办法可以动态构造查询并将其传递给注释。我找到了以xml方式执行此操作的示例,但没有使用注释。 是否可以使用annotatoins编写动态查询?如果是,那么该怎么做。
澄清一个问题,我不是要求传递一个ID,而是构建一个dyanmic where语句。
感谢。
答案 0 :(得分:3)
AFAIK @Select注释不支持动态SQL。我认为这是由于Java Annotations的一些限制。
在myBatis的文档中,您可以阅读:
对于简单语句,注释更加清晰,但是,对于更复杂的语句,Java注释既有限又杂乱。因此,如果你必须做任何复杂的事情,你最好使用XML映射语句
答案 1 :(得分:2)
使用MyBatis 3,您现在可以在注释中使用动态SQL(请参阅this note)。