我尝试使用虚拟查询在我的项目上测试@Query
...但最简单的测试不起作用...这里添加{{1}之前正在运行的src/main/java/com/angular/address/domain/repository/ICityRepository.java
文件行。
@Query
如何实施package com.myproj.address.domain.repository;
import com.myproj.address.domain.entity.City;
import com.myproj.address.domain.entity.State;
import com.myproj.base.BaseRepository;
import org.springframework.data.annotation.QueryAnnotation;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.query.Procedure;
import org.springframework.data.repository.query.Param;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ICityRepository extends BaseRepository<City, Long> {
Page<City> findByState(State state, Pageable pageable); //working fine
List<City> findByState(State state); // working fine
@Query("select count(*)*2.1 from city")
Double findCustom(); // error HERE
}
的自定义查找方法?有什么问题?我正在使用JPA v2.1,Hibernate和PostgreSQL。
错误... 错误在哪里?这是丑陋的消息,
@Query
答案 0 :(得分:3)
@Query("select count(*)*2.1 from city")
无效jpql
查询。如果要完全按照定义使用查询,则应启用nativeQuery=true
属性。
@Query(nativeQuery = true, value= "select count(*)*2.1 from city")
如果不是原生,请查看this answer以jpql
计算。
SideNote:如果错误仍然存在,那么您可能必须删除@Repository
注释。