我使用resteasy-links(2.3.7.Final)通过HATEOAS链接增强我的资源。
当使用@LinkResource的约束来限制其基于属性的创建时,BeanELResolver在传入Type时失败并带有PropertyNotFoundException。问题是resteasy-links的RESTUtils要么传入实体,要么传入ResourceFacade的情况是实体的类型。由于实体的类显然没有与实体本身相同的属性,因此必然会失败。
我想要做的是只显示链接,如果实体没有endTime,这对于直接用例非常有效,但只要使用ResourceFacade,只有实体的类型(DTO.class)传递给ELContext。
@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.虽然有效,但对我来说似乎很狡猾。
有更好的想法吗?