我不太确定如何命名此问题或确切使用什么标签(如果需要,可以高兴地进行编辑)。
在课堂上,我们必须构建一个具有以下属性的人(例如,开发人员)的独立系统: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类,但是我确信有一个更优雅的解决方案。