小编max*_*axi的帖子

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
查看次数

Guava Preconditions的自定义异常

这是一个非常简单的问题,我经常在我的项目中使用com.google.common.base.Preconditions来验证参数和参数,例如:

Preconditions.checkNotNull(parameter, "message");
Preconditions.checkArgument(parameter > 0, "message");

此代码可能会产生IllegalArgumentException或NPE.但是我经常需要抛出自己的异常.我怎么能通过这个图书馆做到这一点?或者也许你可以建议另一个?先感谢您!

更新:我明白,我可以创建自己的简单实用程序类,但我很想找到现成的解决方案.请让我知道,如果有人知道这是可能的.

java preconditions guava

3
推荐指数
2
解决办法
4938
查看次数

标签 统计

java ×2

guava ×1

mongodb ×1

preconditions ×1

spring ×1

spring-data ×1