使用spring data jpa中的map参数进行查询

时间:2017-06-14 01:18:21

标签: spring hibernate spring-data-jpa jpql spring-el

我正在使用spring数据jpa。我注意到spring数据jpa最近支持spel作为查询参数。它在使用object属性作为参数时起作用,但Map没有用。 它下面的代码片段

   @Query(value = "select item from BoardItem item " +
            "where item.board.id = :#{#search.addition['boardId']} " +
            "and ( " +
            "   item.title like concat('%', :#{#search.value}, '%') " +
            "   or item.contents like concat('%', :#{#search.value}, '%') " +
            "   or item.writer like concat('%', :#{#search.value}, '%') " +
            ")"
    )
    @Override
    Page<BoardItem> findAll(@Param("search") SearchVo searchVo, Pageable pageable);

public class SearchVo {
    private String value;
    private Boolean regex;
    private Map<String, String> addition;
....

new SearchVo().getAddition().put("boardId", "1000");

#{#search.value}有效,但#{#search.addition [&#39; boardId&#39;]}不是。 任何人都可以告诉我它是否适用于#{#search.addition [&#39; boardId&#39;]}这样的拼写? 提前谢谢。

0 个答案:

没有答案