Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Spring boot 通过REST公开的一对多jpa映射上的getItems()方法存在问题_Spring Boot_Spring Data_Spring Data Jpa_Spring Data Rest - Fatal编程技术网

Spring boot 通过REST公开的一对多jpa映射上的getItems()方法存在问题

Spring boot 通过REST公开的一对多jpa映射上的getItems()方法存在问题,spring-boot,spring-data,spring-data-jpa,spring-data-rest,Spring Boot,Spring Data,Spring Data Jpa,Spring Data Rest,对于标题中libs的最新版本(1.3.0.M4),当属性方法命名为getItems()/setItems()时,我遇到了一对多(LoggingRequest->LoggingRequestItem)关系的问题。LoggingRequest保存一对多的LoggingRequestItem 这两个存储库都是通过rest公开的 @Entity @Table(name = "LOGGING_REQUESTS") public class LoggingRequest extends StandardPe

对于标题中libs的最新版本(1.3.0.M4),当属性方法命名为
getItems()/setItems()
时,我遇到了一对多(
LoggingRequest->LoggingRequestItem
)关系的问题。
LoggingRequest
保存一对多的
LoggingRequestItem

这两个
存储库都是通过rest公开的

@Entity
@Table(name = "LOGGING_REQUESTS")
public class LoggingRequest extends StandardPersistentEntity implements Serializable {
...
  @OneToMany(cascade = CascadeType.ALL, mappedBy = "loggingRequest")
  @JsonProperty(value="items")
  public Collection<LoggingRequestItem> getItems() {
        return items;
  }

  @JsonProperty(value="items")
  public void setItems(Collection<LoggingRequestItem> data) {
        this.items = data;
  }
}
当方法名称更改为类似
getLoggingRequestItems()
的其他名称时,返回的json不同:

{

      "owner" : "test",
      "status" : "NEW",
      "statusChangedAt" : "2015-08-17T15:24:19.975",
      "createdAt" : "2015-08-17T15:24:19.972",
      "items" : [ {
        "variableData" : {
          "variableName" : "BR2.BWS.2L1.H_ROT:I_TOTAL_OUT",
          "datatype" : "NUMERIC",
          "clientLogOnChange" : false,
          "loggingRequired" : true,
          "unit" : "bits",
          "description" : "integral bits profile surface OUT",
          "clientLogFixedRateMs" : 3600,
          "deadtimeIntervalType" : "SECOND",
          "fixedLoggingIntervalType" : "HOUR",
          "clientRoundingCompare" : 2,
          "clientRoundingLog" : null,
          "dvnMaxSize" : 1,
           ...
}
}
原则上,关联集合的内容似乎取决于方法名称

我错过了什么?它是某个地方的虫子吗

提前感谢,,
Jakub

我实际上找到了一个答案:使用spring devtools重新加载动态更改方法并不总是有效的。重新启动项目时,两种方法的行为完全相同(这是一个链接):

但是,当我明确要求这个登录请求时,我得到了它,但没有链接到项目:

{
  "id" : 6303064632841896,
  "owner" : "TEST",
  "status" : "NEW",
  "statusChangedAt" : "2015-08-27T16:13:16.436",
  "createdAt" : "2015-08-27T16:13:16.436",
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/api/loggingRequests/6303064632841896",
      "templated" : false
    },
    "loggingRequest" : {
      "href" : "http://localhost:8080/api/loggingRequests/6303064632841896",
      "templated" : false
    }
  }
}
现在,当我跟随链接时,我得到一个空响应(而此请求有100个项目):


你知道为什么会这样吗?我已经检查了Response对象,这些项都在那里,但是它们没有正确地呈现到输出中

我实际上找到了一个答案:使用spring devtools reload动态更改方法并不总是有效的。重新启动项目时,两种方法的行为完全相同(这是一个链接):

但是,当我明确要求这个登录请求时,我得到了它,但没有链接到项目:

{
  "id" : 6303064632841896,
  "owner" : "TEST",
  "status" : "NEW",
  "statusChangedAt" : "2015-08-27T16:13:16.436",
  "createdAt" : "2015-08-27T16:13:16.436",
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/api/loggingRequests/6303064632841896",
      "templated" : false
    },
    "loggingRequest" : {
      "href" : "http://localhost:8080/api/loggingRequests/6303064632841896",
      "templated" : false
    }
  }
}
现在,当我跟随链接时,我得到一个空响应(而此请求有100个项目):


你知道为什么会这样吗?我已经检查了Response对象,这些项都在那里,但是它们没有正确地呈现到输出中

该项目基于spring boot、spring data jpa、spring data rest、hibernate for jpa。该项目基于spring boot、spring data jpa、spring data rest、hibernate for jpa。
{
  "id" : 6303064632841896,
  "owner" : "TEST",
  "status" : "NEW",
  "statusChangedAt" : "2015-08-27T16:13:16.436",
  "createdAt" : "2015-08-27T16:13:16.436",
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/api/loggingRequests/6303064632841896",
      "templated" : false
    },
    "loggingRequest" : {
      "href" : "http://localhost:8080/api/loggingRequests/6303064632841896",
      "templated" : false
    }
  }
}
curl -i -X GET -H "Content-Type:application/json"  http://localhost:8080/api/loggingRequests/6303064632841896/loggingRequestItems
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: application/hal+json;charset=UTF-8
Transfer-Encoding: chunked
Date: Fri, 28 Aug 2015 13:26:12 GMT

{
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/api/loggingRequests/6303064632841896/loggingRequestItems",
      "templated" : false
    }
  }
}