这是我课程中的课程模型Course:
public class Course{
private int courseId;
private String courseName;
private Teacher teacher;
}
Run Code Online (Sandbox Code Playgroud)
这是我班级中的老师模型Teacher:
public class Teacher{
private int teacherId;
private String name;
}
Run Code Online (Sandbox Code Playgroud)
我想得到一个,Map<String, List<Course>>但如果teacherId重复只是将其添加Course到地图列表中.
我正在使用groupBy它
Map<Integer, List<Course>> result = courses.stream()
.collect(Collectors.groupingBy(c -> c.getTeacher().getTeacherId(), Collectors.toList()));
Run Code Online (Sandbox Code Playgroud)
它正在按预期给出结果.
但我想在limit这里找到5名教师停止处理并返回结果.
怎么做到呢??
我有一个Person其中有id和name。
Id当我通过方法搜索返回Person对象时,我想将其作为缓存键,但返回的数据在注释标记name中不可访问,但可以在标记中访问。keyCacheablenameunless
@Cacheable(value = "Cache", key = "#result.name", unless="#result.name == 'Foo'")
public Person getById(String id){}
Run Code Online (Sandbox Code Playgroud)
如果我使用key = "#result.name"它会给我例外:
EL1007E:在 null 上找不到属性或字段“名称”
我缺少什么,如何访问key标记中方法返回的数据?