2

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

例子:

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

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

为了澄清这个问题,我问的不是传递一个 ID,而是构建一个动态的 where 语句。

谢谢。

4

2 回答 2

3

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

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

注释对于简单的语句要干净得多,但是,Java 注释对于更复杂的语句来说既有限又混乱。因此,如果您必须做任何复杂的事情,最好使用 XML 映射语句

于 2013-02-22T06:38:02.940 回答
2

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

于 2014-01-09T12:57:54.257 回答