我正在尝试创建一个基本存储库,以便获得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

10-01 13:46