gpt4 book ai didi

java - 如何根据映射 URL 从 RestController 获取实体

转载 作者:行者123 更新时间:2023-11-29 04:11:10 27 4
gpt4 key购买 nike

我有 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
}

我想在同一时间使用相同 ENTITY 有机会取决于 URL 发送给客户:

1.

{
"name":"Alex",
"age":30,
"weight":70
}

2.

{
"name":"Alex",
"age":30
}

最佳答案

您还可以使用 JsonView Annotation,这会使其更清晰一些。定义 View

public class View {
static class Public { }
static class ExtendedPublic extends Public { }
static class Private extends ExtendedPublic { }
}

实体

    @Entity
@Table("entities)
public class MyEntity {

@ID
private String name;
@Column(name="age")
private int age;
@JsonView(View.Private.class)
@Column(name="weight")
private int weight;

...getters and setters..

}

在你的 Rest Controller 中

    @JsonView(View.Private.class)
@GetMapping
public MyEntity get(){
...
return myEntity;
}

@JsonView(View.Public.class)
@GetMapping("url")
public List<MyEntity> getAll(){
...
return entities;
}

这里已经解释过了: https://stackoverflow.com/a/49207551/3005093

关于java - 如何根据映射 URL 从 RestController 获取实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54994548/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com