[英]How to set TTL for a specific Couchbase document using spring-data-couchbase?
[英]How to return a boolean from a document using spring-data-couchbase with @Query
我正在使用 spring-data-couchbase 4.1.1。 我想在我的存儲庫方法中添加一個方法,如下所示
public interface DomainRepository extends CouchbaseRepository<Domain, String> {
@Query(("SELECT isActive from #{#n1ql.bucket} "
+ "WHERE META().id = " + "\"#{#id}\" "))
Boolean isActive(@Param("id") String id);
}
但是它將域的 ClassCastException 拋出到 Boolean 我相信這是可以接受的。
還有其他簡單的方法嗎? 我相信舊版本的 couchbaseTemplate 中有一個 findByN1QlProjection,但在這個版本中找不到它。 但我寧願不直接使用 couchbasetemplate 或 couchbase sdk 的子文檔 api。
一個類似的舊問題How to fetch a field from document using n1ql with spring-data-couchbase
一種建議的解決方案是專門為需要的字段定義 DTO 及其存儲庫。
class IsActiveDTO {
private isActive;
// constructor, getters, and setters
}
並定義其存儲庫
public interface IsActiveDTORepository extends CouchbaseRepository<IsActiveDTO, String> {
@Query(("SELECT isActive from #{#n1ql.bucket} "
+ "WHERE META().id = " + "\"#{#id}\" "))
IsActiveDTO isActive(@Param("id") String id);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.