首页 > 解决方案 > 如何将方法放入@Query

问题描述

有典型的jpa界面

public interface AnswerPollsRepository extends JpaRepository<EAnswerPoll, Long>{

default String getQuery(Map<String,String>map,Long pollId){
    String sql="select a.* from answer_poll a where a.poll_id ="+pollId;
  return sql+map.entrySet().stream()
        .filter(x->!x.getKey().equals("mail")&&x.getKey().equals("name"))
        .map(x->"and a.parameters->>"+x.getKey()+" like "+x.getValue())
      .collect(Collectors.joining(" "));

 @Query( value = "#{@.getQuery(#id,#map)}" ,nativeQuery = true)
  List<Long>findAllByCustomFilter(@Param("id") Long pollId,@Param("map") Map<String,String>map);

如何将getQuery 放到@Query 中?还是不可能?这不起作用

@Query( value = "#{@.getQuery(#id,#map)}" ,nativeQuery = true)

标签: springhibernatejpaspring-el

解决方案


推荐阅读