@Document(collection =“Test”)在MongoRepository中不起作用 - Spring数据 - mongodb

时间:2017-08-21 18:05:32

标签: spring mongodb spring-boot spring-data spring-data-mongodb

我正在尝试使用java的泛型创建通用mongo存储库。 我已经定义了如下的存储库。

public interface ICentroRepository<T extends Serializable, ID extends 
Serializable> extends MongoRepository<T, ID> {  
}

我正在定义文档实体,如下所示

@Document(collection = "mycollectionName")
public class SkuItem implements Serializable {

@Id
private String _id;

String title;
//Getter and Setter of _id and title
}

但它总是选择集合名称作为serializable(在ICentroRepository中扩展T的接口/类,而不是在@Document集合中定义的值)。 任何人都可以帮我设计我的通用mongo存储库吗? 很多人提前谢谢你。 :):)

3 个答案:

答案 0 :(得分:0)

public interface ICentroRepository<T extends Serializable, ID extends 
Serializable> extends MongoRepository<T, ID> {  
}

public interface ICentroRepository extends MongoRepository<SkuItem, ID> {  
}

答案 1 :(得分:0)

你应该在SkuItemRepository上创建一个SkuItem,这就是Spring Data的工作原理,否则如果你调用findById(id)并且...... ?

当Spring的基础存储库接口只是通用的时,创建通用存储库有什么好处。所以你只是创建一个没有任何用处的标记界面。

答案 2 :(得分:-1)

public interface ICentroRepository<T implements Serializable, ID implements 
Serializable> extends MongoRepository<T, ID> {  
} 

我不确定 是吗?