2016-11-29 75 views
1

我正在使用Spring 1.3.3,並且我無法使用GET在Spring Data Rest Response中獲取自引用對象,即使它不爲null。如何在使用Spring Data Rest的GET調用中獲取自引用對象

e.g

我的表:

CREATE TABLE `employee` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `name` varchar(40) NOT NULL, 
    `parent_id` int(11) DEFAULT NULL, 
    PRIMARY KEY (`id`), 
    UNIQUE KEY `name` (`name`), 
    KEY `FK_employee_parent` (`parent_id`), 
    CONSTRAINT `FK_employee_parent` FOREIGN KEY (`parent_id`) REFERENCES `employee` (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=8057 DEFAULT CHARSET=latin1 

響應:

{ 
"id": 1, 
"name": "Test Employee", 
"_links": { 
"self": { 
"href": "http://localhost:8081/employee/1" 
}, 
"employee": { 
"href": "http://localhost:8081/employee/1" 
}, 
"parent": { 
"href": "http://localhost:8081/employee/1/parent" 
} 
} 
} 

但我需要的PARENT_ID名稱旁邊的領域,而不是根據 「鏈接」。

  1. 有沒有辦法返回Employee對象中的parentId(下一個 爲名稱)?

OR

  • 我應該需要添加投影返回 自參考對象?
  • +0

    是的,你可以使用一個投影來嵌入一些關於體內關聯的信息。 –

    回答

    -1

    我建議在您的彈簧休息時使用傑克遜。然後,您可以輕鬆地向域對象添加註釋,以將鏈接重命名爲parent_id。

    @JsonProperty("parent_id") 
    

    您還需要添加類

    @JsonSerialize 
    @JsonInclude 
    

    最佳實踐上述兩個註解其實並沒有直接使用域對象,但在它們之間處理這一使用POJO。那麼域對象數據將被複制到該pojo中,並且只會顯示您想要在其他響應中顯示的內容。

    +0

    這是一個關於Spring Data Rest的問題。它使用實體。 –

    +0

    此代碼不適用於我的應用程序。 – SST