Я не совсем уверен, как назвать этот вопрос или какие именно теги использовать (с удовольствием отредактирую при необходимости).
В классе мы должны построить автономную систему человека (разработчик дляпример) со следующими атрибутами: идентификатор, имя, зарплата, контактная информация и навыки.Весной мы создаем HTML-версию, которая будет отображаться в веб-браузере, банке данных и так далее.Мы должны сохранить журнал всех изменений в банке данных, но при вызове «http://localhost:8080/person/api/events/" из веб-браузера - мы должны« отфильтровать »зарплату, чтобы вы ее не увидели (так что никто за пределамисистема сможет его увидеть).
Это класс person (lohn = salary):
@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;
}
В класс PersonController включен следующий метод:
....
private void savePersonEvent(String type, Person person){
PersonEvent event = new PersonEvent();
event.setEvent(type);
event.setObjekt(person);
event.setObjektId(person.getId());
personEventRepository.save(event);
}
Класс PersonEvent:
@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;
}
И, наконец, класс EvenController:
@RestController
public class EventController {
@Autowired
EventProducer eventstream;
@RequestMapping("/person/api/events")
public PersonEvents feed(@RequestParam(value="last", required = false) Integer last) {
if(last == null) last = 0;
return eventstream.from(last);
}
}
Один человек в БД выглядит следующим образом
При просмотре событий «log» - «lohn: 50000» не должен быть виден (извините, я пока не могу вставлять изображения)
Не знаюя действительно не понимаю, как не включать зарплату. И просто установить ее на 0 не совсем то, что мы просим. Я мог бы просто представить новый класс dummyPerson, который не включает зарплату, но я уверен, чтоесть более элегантное решение.