我正在使用 resteasy-links (2.3.7.Final) 通过 HATEOAS 链接增强我的资源。
当使用 @LinkResource 的约束来限制其基于属性的创建时,BeanELResolver 在传入类型时失败并出现 PropertyNotFoundException。问题是resteasy-links 的 RESTUtils 要么传入实体,要么传入实体ResourceFacade 实体的类型。由于实体的类显然不具有与实体本身相同的属性,因此这注定会失败。
我想要做的是仅在实体没有 endTime 时才显示链接,这对于直接用例非常有效,但是一旦使用 ResourceFacade,只有实体的类型(DTO.class)被传递到EL上下文。
@LinkResource(value = DTO.class, constraint = "${endTime == null}")
我试过了
"${!(this instanceof java.lang.Class) && endTime == null}"
"${this.getClass() == 'DTO' && endTime == null}"
"${!this.toString().contains('class') && endTime == null}"
但是 1. 甚至没有编译,第二个失败,因为 Class 没有 getClass()。3. 有效,但对我来说似乎相当 hacky。
有更好的想法吗?