我有几个类似的课程,其中一个人有一个可选雇主。
class Person {
String getFirstName() {...}
String getLastName() {...}
Optional<Employer> getEmployer() {...}
}
class Employer {
String getName() {...}
String getAddress() {...}
}
使用Spring Data Rest,我想对Person应用一个投影,其中还包括Employer的投影。像这样的东西。
@Projection(name="simple", types=Person.class)
interface PersonProjection {
String getFirstName();
Optional<EmployerProjection> getEmployer();
}
@Projection(name="employer", types=Employer.class)
interface EmployerProjection {
String getName();
}
但是,我看到的是EmployerProjection没有被使用。 PersonProjection在工作,但是表现得好像这样定义了PersonProjection。
@Projection(name="simple", types=Person.class)
interface PersonProjection {
String getFirstName();
Optional<Employer> getEmployer();
}
EmployerProjection被忽略。导致问题的“可选”部分似乎有些问题。如果我将Person类和PersonProjection上的getEmployer()的返回类型都更改为Employer
而不是Optional<Employer>
,则EmployerProjection被拾取并且可以工作。在这种情况下,不支持“可选”,或者我没有正确定义投影。有任何想法吗?我正在使用Spring Boot版本2.0.3。