相关疑难解决方法(0)

Spring 存储库自动转换具有不同类类型的实体

我正在使用 MongoRepository 接口为不同的实体扩展我的自定义存储库。现在我遇到了问题,让我们假设一个例子:我有 2 个实体:

@Document(collection = "person")
public class Employee {
    private String position;
}
Run Code Online (Sandbox Code Playgroud)

@Document(collection = "person")
public class Manager {
    private String major;
}
Run Code Online (Sandbox Code Playgroud)

两者的存储库:

@Repository
public interface ManagerRepository extends MongoRepository<Manager, String> {}
Run Code Online (Sandbox Code Playgroud)

@Repository
public interface EmployeeRepository extends MongoRepository<Employee, String> {}
Run Code Online (Sandbox Code Playgroud)

当我保存 2 个模型时,一切顺利:

{
    "_id" : ObjectId("5541f988d4c603ebac18a147"),
    "_class" : "com.igmtechnology.gravity.core.init.test.Manager",
    "major" : "majority"
}
{
    "_id" : ObjectId("5541f988d4c603ebac18a148"),
    "_class" : "com.igmtechnology.gravity.core.init.test.Employee",
    "position" : "developer"
}
Run Code Online (Sandbox Code Playgroud)

但是当我从其中一个存储库中执行 findAll() 时,我得到了 2 个对象,其中一个 spring 会自动转换为另一个对象。如何避免这种自动铸造?或者如何指定我需要获得哪个课程?

java spring mongodb spring-data

6
推荐指数
1
解决办法
1932
查看次数

标签 统计

java ×1

mongodb ×1

spring ×1

spring-data ×1