![](/img/trans.png)
[英]Is it possible to create a Mongo view using spring-data-mongo 1.10?
[英]Using generic objects with Spring Data Mongo
我正在使用Spring Data Mongo將程序與MongoDB實例接口。 我在Mongo中存儲的存儲類型與以下類似。
@Document
class A<T> {
@Id String id;
Instant createdAt;
List<T> values;
}
如您所見,通用類型T
在主文檔內的屬性中使用。 我在使用查詢提取此類文檔時遇到一些問題。 我目前正在使用類似於以下語句的內容。
List<A> list =
mongoTemplate.find(Query.query(Criteria.where("id").in("id1", "id2"),
A.class,
"collectionName");
不幸的是,以上代碼不提供對通用字段的任何支持。 我查看了文檔和MongoTemplate
的代碼,但沒有找到任何東西。
Spring的其他一些模板類提供了這種支持。 以RestTemplate
為例。 exchange
方法的許多簽名都使用ParameterizedTypeReference<T>
來實現與我正在搜索的MongoTemplate
(例如this )相似的東西。
我認為,在MongoTemplate
也有類似的內容將很有用。
在提取過程中是否可以處理通用類型?
謝謝。
我認為Spring Data MongoDB無法提供支持通用文檔的方法。
正如Oliver Gierke在評論中明確解釋的那樣:
沒有的子類型
A<T>
結合T
到某種類型的,沒有點在這里,即使使用通用的類型。 您可以堅持使用List<Object>
。
實現所需功能的最佳方法是為每個values
-type創建A
的子類型。 像這樣:
@Document
public class StringA extends A<String> { ... }
@Document
public class IntegerA extends A<Integer> { ... }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.