我正在尝试创建一个基本存储库,以便获得Postgres支持的我所在地区的时区。我收到错误消息“注释类型不适用于这种声明”。
我应该如何处理?为什么不允许在这里定义查询?
import com.me.model.PgTz;
import org.springframework.data.jpa.repository.Query;
import org.springframework.stereotype.Repository;
@Repository
public interface TzRepository extends org.springframework.data.repository.Repository<PgTz,String>
{
@Query("SELECT tz FROM PgTz tz WHERE tz.name STARTSWITH 'US/' OR tz.name STARTSWITH 'America/'");
Iterable<PgTz> findPgTzByName();
}
最佳答案
问题是由于@Query()
声明后的分号引起的,在Java中是非法的。删除它可以修复编译问题。
@Query("SELECT tz FROM PgTz i WHERE i.name STARTSWITH('US/') OR i.name STARTSWITH('America/')")
Iterable<PgTz> findPgTzByName();
见Annotations Basics