![](/img/trans.png)
[英]Update Couchbase documents without overwriting @Created fields with Spring Data Auditing
[英]Spring data couchbase documents java classes inheritance
我的問題是,Spring Data Couchbase不會搜索被搜索類的子類。 例如:
模型:
@Document
class A {
@Id
String id
}
@Document
class B extends A {}
和存儲庫:
public interface ARepository extends PagingAndSortingRepository<A, String>{
Page<A> findAll(Pageable pageable);
}
Spring Data Couchbase生成查詢,條件在何處
_class = “com.example.model.A”
但是我也想在此查詢中搜索B文檔。 是某種方式,我該怎么做? 當我編寫自己的查詢時,必須在查詢中定義順序,限制和偏移量,並且不使用Pageable。 但是我想使用Pageable。
考慮基於繼承的通用接口。
首先創建超類:
@Inheritance
public abstract class SuperClass{
@Id
private int id;
}
然后創建您的子類:
public class A extends SuperClass { /* ... */ }
public class B extends SuperClass { /* ... */ }
創建基礎存儲庫:
@NoRepositoryBean
public interface SuperClassBaseRepository<T extends SuperClass>
extends PagingAndSortingRepository<T, Integer> {
public T findAll();
}
然后基於基礎倉庫創建SuperClass存儲庫:
@Transactional
public interface SuperClassRepository extends SuperClassBaseRepository<SuperClass> { /* ... */ }
@Transactional
public interface ARepository extends SuperClassBaseRepository<A> { /* ... */ }
@Transactional
public interface BRepository extends SuperClassBaseRepository<B> { /* ... */ }
SuperClassRepository findAll()
將搜索所有A和B類
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.