java如何根据映射URL从RestController获取实体
我有MyEntity课程:
@Entity
@Table("entities)
public class MyEntity {
@ID
private String name;
@Column(name="age")
private int age;
@Column(name="weight")
private int weight;
...getters and setters..
}
在@RestController中有2个@GetMapping方法。 第一:
@GetMapping
public MyEntity get(){
...
return myEntity;
}
第二点:
@GetMapping("url")
public List<MyEntity> getAll(){
...
return entities;
}
需要提供:
1.@GetMapping返回实体,如MyEntity类中所述
2.@GetMapping(“url”)返回实体,如它的一个字段带有@JsonIgnore
更新:
当我返回myEntity时,客户端将获得,例如:
{
"name":"Alex",
"age":30,
"weight":70
}
我希望同时使用相同的实体有机会,具体取决于URL发送到客户端:
一,
{
"name":"Alex",
"age":30,
"weight":70
}
二,
{
"name":"Alex",
"age":30
}
# 1 楼答案
您可以创建两个DTO类,将实体转换为适当的DTO类并返回它
# 2 楼答案
编辑:
您可以将实体对象序列化为映射,其中映射键表示属性名称,而不是返回实体对象。因此,可以根据include参数将值添加到地图中
有用参考123
# 3 楼答案
您还可以使用JsonView注释,这使它更简洁。 定义视图
实体
在你的休息控制器里
这里已经解释过: https://stackoverflow.com/a/49207551/3005093