我有包含一些基本属性的POJO和另一个POJO的列表(比如客户POJO),客户POJO又包含另一个POJO的列表(比如地址POJO)。
我可以使用Spring Expression Language' collection projection'来访问客户POJO列表中所有条目的所有属性。用于访问员工{#Customers.![customerName]}
,{#Customers.![customerAge]}
等的运营商,其工作正常。
但有人可以告诉我如何访问每个客户POJO列表下的地址POJO的所有列表条目吗?
感谢您的任何帮助。
答案 0 :(得分:1)
我担心Spring EL不支持嵌套列表投影,所以我们必须自己做。
实际上,集合投影与Java8的映射相同,集合选择等于Java8的过滤器。
通过使用Java8流,我们可以通过flatmap
和collect
执行此操作:
#{customers.stream()
.map(Customer::getAddress)
.flatMap(Collection::stream)
.collect(Collectors.toList())}