Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SpringDataREST中自定义实体的模式_Java_Spring_Spring Data Jpa_Jsonschema_Spring Data Rest - Fatal编程技术网

Java 如何在SpringDataREST中自定义实体的模式

Java 如何在SpringDataREST中自定义实体的模式,java,spring,spring-data-jpa,jsonschema,spring-data-rest,Java,Spring,Spring Data Jpa,Jsonschema,Spring Data Rest,目前,我可以通过向/{resource}/Schema(使用accept:application/Schema+JSON)发出get请求来获取资源的JSON模式 看起来是这样的: { "name" : "{java_package}.{resource_class_name}", "description" : "rest.description.{resource_class_name}", "links" : [ ], "properties" : { "{prope

目前,我可以通过向/{resource}/Schema(使用accept:application/Schema+JSON)发出get请求来获取资源的JSON模式

看起来是这样的:

{
  "name" : "{java_package}.{resource_class_name}",
  "description" : "rest.description.{resource_class_name}",
  "links" : [ ],
  "properties" : {
    "{property name}" : {
      "type" : "{property_type}",
      "description" : "rest.description.{resource_class_name}.{property_name}",
      "required" : false
    }
  }
}
{
  "name" : "{resource_name}",
  "description" : "{custom_description}",
  "links" : [ ],
  "properties" : {
    "{property_name}" : {
      "type" : "{property_type}",
      "description" : "{custom_property_description}",
      "required" : {true or false}
    }
  }
}
我无法弄清楚的是如何更改名称、描述,或者是否需要该属性。我想看起来像这样:

{
  "name" : "{java_package}.{resource_class_name}",
  "description" : "rest.description.{resource_class_name}",
  "links" : [ ],
  "properties" : {
    "{property name}" : {
      "type" : "{property_type}",
      "description" : "rest.description.{resource_class_name}.{property_name}",
      "required" : false
    }
  }
}
{
  "name" : "{resource_name}",
  "description" : "{custom_description}",
  "links" : [ ],
  "properties" : {
    "{property_name}" : {
      "type" : "{property_type}",
      "description" : "{custom_property_description}",
      "required" : {true or false}
    }
  }
}
我尝试以这种方式注释实体类:

@JsonPropertyDescription(value = "{custom_property_description}")
@JsonProperty(required = {true or false})
private {property_type} {property_name};

但最终结果是一样的。有人知道如何自定义SDR返回的模式吗?

使用SDR 2.2.X使用
org.springframework.data.rest.core.annotation.Description注释域类和域,以查看填充的“Description”属性。“name”属性连接到您的域类名,“required”属性设置为“false”

示例

会让步

{
  "name" : "com.test.App",
  "description" : "Application",
  "links" : [ ],
  "properties" : {
    "name" : {
      "type" : "string",
      "description" : "Application Name",
      "required" : false
    }
  }
}

话虽如此,仍需对尚未实现的模式进行确认。

是否有方法更改顶级名称?我不想显示包。我必须手动为每个属性添加注释吗?我可以不显示描述吗?这是可选的。没有注释的字段将有空的description当前没有注释,它们有完整的路径,包括包和类名,看起来功能已经改变了。注意,我没有亲自核实这一点