默认情况下,在 Spring Data Rest 中,实体的 @Id 是不公开的。根据 REST 规则,我们应该使用资源的 URI 来引用它。鉴于此假设,如果您将 URI 传递给 findBy 查询,它们应该可以工作,但它们不会。
例如,假设我在老师和学生之间有一对多的关系。我想按老师找学生。
List<Student> findByTeacher(Teacher teacher)
http://localhost:8080/repositories/students/search/findByTeacher?teacher=http://localhost:8080/repositories/teachers/1
这不起作用,因为框架正在尝试将教师 URI 转换为 Long。我收到此错误消息“无法从 java.lang.String 类型转换为 java.lang.Long 类型”。
我错过了什么吗?