我正在使用 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 会自动转换为另一个对象。如何避免这种自动铸造?或者如何指定我需要获得哪个课程?
这是一个非常简单的问题,我经常在我的项目中使用com.google.common.base.Preconditions来验证参数和参数,例如:
Preconditions.checkNotNull(parameter, "message");
Preconditions.checkArgument(parameter > 0, "message");
此代码可能会产生IllegalArgumentException或NPE.但是我经常需要抛出自己的异常.我怎么能通过这个图书馆做到这一点?或者也许你可以建议另一个?先感谢您!
更新:我明白,我可以创建自己的简单实用程序类,但我很想找到现成的解决方案.请让我知道,如果有人知道这是可能的.