Spring Cloud Datastore Repositories 投影

2024-01-12 09:34 更新

Spring Data Cloud Datastore支持预测您可以根据域类型定义投影接口,并添加查询方法以在存储库中返回它们:

public interface TradeProjection {

	String getAction();

	@Value("#{target.symbol + ' ' + target.action}")
	String getSymbolAndAction();
}

public interface TradeRepository extends DatastoreRepository<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);
}

可以通过基于名称约定的查询方法以及自定义GQL查询来提供投影。如果使用自定义GQL查询,则可以进一步将从Cloud Datastore检索到的字段限制为仅投影所需的字段。但是,自定义的select语句(不使用SELECT *的语句)需要包含所选字段的复合索引。

使用SpEL定义的投影类型中的Properties将固定名称target用于基础域对象。结果,访问基础属性的格式为target.<property-name>

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号