我有一个Mongo集合,可能包含三种实体类型,我将其映射到Java类型:
- 节点
- LeafType1
- LeafType2
该集合用于使用父条目中的子节点的dbRef存储树状结构。
在Spring参考文档中,我没有找到关于这个主题的任何信息,所以我在这里问:是否有一种方法可以使用Repository
机制处理可能包含不同类型对象的集合?
声明几个不同类型的存储库在一个集合中似乎不是很好的想法,因为我总是在处理查询对象不是预期类型的情况,并且创建一个抽象类的存储库,所有可能的类型都继承该类似乎行不通。
为了说明我的意思:
/**
* This seems not safe
*/
public interface NodeRepository extends MongoRepository<Node, String> { }
public interface LeafType1Repository extends MongoRepository<LeafType1, String> { }
public interface LeafType2Repository extends MongoRepository<LeafType2, String> { }
/**
* This doesn't work at all
*/
public interface MyCollectionRepository extends MongoRepository<AbstractMyCollectionNode, String> { }