当前,Spring Data
REST仅支持由单个字段表示的复合键。这实际上意味着仅
@EmbeddedId受支持。我已提交DATAJPA-770进行修复。
如果您可以切换到
@EmbeddedId该语言,则仍然需要向Spring Data
REST讲授您要在URI中表示复杂标识符的方式,以及如何将路径段转换回id类型的实例。为此,实现一个
BackendIdConverter并将其注册为Spring
bean。
@Componentclass CustomBackendIdConverter implements BackendIdConverter { @Override public Serializable fromRequestId(String id, Class<?> entityType) { // Make sure you validate the input String[] parts = id.split("_"); return new YourEmbeddedIdType(parts[0], parts[1]); } @Override public String toRequestId(Serializable source, Class<?> entityType) { YourIdType id = (YourIdType) source; return String.format("%s_%s", …); } @Override public boolean supports(Class<?> type) { return YourDomainType.class.equals(type); }}


