可选类型和Spring Data Rest投影

时间:2018-06-22 15:25:55

标签: java spring spring-mvc spring-boot spring-data

我有几个类似的课程,其中一个人有一个可选雇主。

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。

0 个答案:

没有答案