【发布时间】:2016-05-13 00:23:49
【问题描述】:
spring-data-rest 可以直接暴露@Entity 域对象,甚至提供DTO 投影,如下所示:
@Projection(name = "personDTO", types = { Person.class })
public interface PersonDTO {
@Value("#{target.firstName} #{target.lastName}") //SPeL
String getFullName();
}
问题:如果我只想自己构造 一些 dto 字段怎么办?例如,在名字字段上有某种条件,并基于此以一种或其他方式填充它。这可能吗?
Spring 提到了一个例子,但不幸的是它并不完整: https://spring.io/blog/2014/05/21/what-s-new-in-spring-data-dijkstra
@Projection(name = "summary", types = Order.class)
interface OrderSummary {
@Value("#{@shop.calculateTotal(target)}")
Money getTotal();
}
这里的逻辑被导出到@shop.calulcateTotal(),但是他们没有在示例中说明这个@shop bean 是如何在这里注入的。我假设这是@Service,但不知道如何获取它。
【问题讨论】:
标签: java spring spring-data spring-rest