所以,我有一个一对多的关系在我的entites之一:你可以在JPA实体中使用性能良好的lambda表达式吗?
@OneToMany(cascade = { CascadeType.PERSIST, CascadeType.REFRESH }, fetch = FetchType.LAZY)
@OrderBy("priority")
private List<Result> results
我想包含一些标准,根据这些“成果”的内部对象:
Stream<Item> itemsToReturn = results.stream().filter(result -> result.getPriority() > 5)
.map(Result::getItem)
.filter(/*some filtering logic*/)
.limit(numberOfItems);
一点也没有” t似乎是非常有效的,因为我猜所有的项目都会在任何过滤完成之前加载到内存中,尽管过滤和限制。
我的假设是否正确?如果是这样,我可以做些什么,以便我可以在这个实体中使用lambda,或者我应该写一个JPA查询来获取这些项目?
lambda可以与JPA一起使用吗?
正如@Sleiman所说,这可能是一项非常昂贵的操作。为什么要用一个简单的线性搜索替换部分构建的数据库来处理子句?如果是由我来审查,我会拒绝此代码。 – stdunbar