mybatis动态sql里面的注释

时间:2013-02-21 21:37:20

标签: mybatis

我正在使用mybatis 3。 我正在使用@select注释在mapper iterface中编写select查询。

示例:

@Select("select * from EMPLOYEE where ID>55")
public List<Employee> getEmployees();

有没有办法可以动态构造查询并将其传递给注释。我找到了以xml方式执行此操作的示例,但没有使用注释。 是否可以使用annotatoins编写动态查询?如果是,那么该怎么做。

澄清一个问题,我不是要求传递一个ID,而是构建一个dyanmic where语句。

感谢。

2 个答案:

答案 0 :(得分:3)

AFAIK @Select注释不支持动态SQL。我认为这是由于Java Annotations的一些限制。

在myBatis的文档中,您可以阅读:

  

对于简单语句,注释更加清晰,但是,对于更复杂的语句,Java注释既有限又杂乱。因此,如果你必须做任何复杂的事情,你最好使用XML映射语句

答案 1 :(得分:2)

使用MyBatis 3,您现在可以在注释中使用动态SQL(请参阅this note)。