如何不显示API的整个对象?

时间:2019-01-31 17:06:57

标签: java spring-boot

我不太确定如何命名此问题或确切使用什么标签(如果需要,可以高兴地进行编辑)。

在课堂上,我们必须构建一个具有以下属性的人(例如,开发人员)的独立系统:ID,姓名,薪水,联系信息和技能。在Spring中,我们创建HTML版本,该版本将显示在Web浏览器,数据库等中。 我们必须将所有更改的日志保存到数据库中,但是当从Web浏览器中调用“ http://localhost:8080/person/api/events/”时-我们必须“过滤”薪水,这样您将看不到它(因此没有人可以看到)系统将能够看到它。)

这是人员类别(lohn =工资):

[]

PersonController类包含以下方法:

@Data
@Entity
public class Person {
    @Id
    @GeneratedValue(generator = "person_gen", strategy = GenerationType.SEQUENCE)
    @SequenceGenerator(name = "person_gen", sequenceName = "person_gen_my_sql", allocationSize=1)
    private Long id;

    private String name;
    private long lohn;
    private String kontaktdaten;
    private String skills;
    private Long[] projekte;
}

PersonEvent类是:

....
private void savePersonEvent(String type, Person person){
    PersonEvent event = new PersonEvent();
    event.setEvent(type);
    event.setObjekt(person);
    event.setObjektId(person.getId());
    personEventRepository.save(event);
}

最后是一个EvenController类:

@Data
@Entity
public class PersonEvent {
    public PersonEvent() {}
    @Id
    @GeneratedValue(generator = "person_event_gen", strategy = GenerationType.SEQUENCE)
    @SequenceGenerator(name = "person_event_gen", sequenceName = "person_event_gen_my_sql", allocationSize=1)
    private Long id;

    @Column(name="personId")
    private Long objektId;
    private String event;

    @ManyToOne(cascade = CascadeType.ALL)
    private Person objekt;

}

One Person is in the DB looks like this

When looking in the events "log"- "lohn: 50000" shouldn't be visible (对不起,我还不能嵌入图片)

我不太了解如何包括薪水。仅将其设置为0并不是我们真正要求的。 我可以介绍一个新的不包含薪水的dummyPerson类,但是我确信有一个更优雅的解决方案。

0 个答案:

没有答案