Spring Cloud 投影
2024-01-11 15:06 更新
Spring Data Spanner支持投影。您可以根据域类型定义投影接口,并添加查询方法以在存储库中返回它们:
public interface TradeProjection { String getAction(); @Value("#{target.symbol + ' ' + target.action}") String getSymbolAndAction(); } public interface TradeRepository extends SpannerRepository<Trade, Key> { List<Trade> findByTraderId(String traderId); List<TradeProjection> findByAction(String action); @Query("SELECT action, symbol FROM trades WHERE action = @action") List<TradeProjection> findByQuery(String action); }
可以通过基于名称约定的查询方法以及自定义SQL查询来提供投影。如果使用自定义SQL查询,则可以进一步限制从Spanner检索的列,使其仅限于投影所需要的列,以提高性能。
使用SpEL定义的投影类型中的Properties对基础域对象使用固定名称target
。结果,访问基础属性的格式为target.<property-name>
。
以上内容是否对您有帮助:
更多建议: