2016-11-29 72 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