Spring Mongo存储库多态性

时间:2012-08-30 04:24:28

标签: spring mongodb polymorphism

如何为多态类定义Repository接口

实施例。

abstract class Source { public String name }

class InternalSource extends Source { public int internalId }
class ExternalSource extends Source { public String contact }

现在我知道我无法定义像

这样的存储库界面
interface SourceRepo extends Repository<? extends Source, String>{....}

interface SourceRepo extends Repository<Source, String> { ....}

定义简单的普通接口并且有一个implmentation类是唯一的方法吗?

1 个答案:

答案 0 :(得分:1)

让spring通过'_class'属性将mongo文档与java类映射关联起来会很好。

Mongo文档会像这样

{_id : "xxx", name : "abc", internalId : 123, _class = "...InternalSource" }
{_id : "xxx", name : "abc", contact: "John doe", _class = "...ExternalSource"}