Новые для весны данные JPA. У меня есть два класса моделей Party и PartyCategory (оба расширены до класса DataModelEntity).
Когда я передаю идентификатор для Partycategory в запросе json, он изменяется только из-за одной новой строки данных, добавленной в таблицу PartyCategory при создании / сохранение новой партии.
Я ожидаю, что таблица PartyCategory не должна обновляться. В таблице Party происходит только обновление. Похоже на проблему с отображением. Любые ссылки / документы также будут полезны.
Json Запрос:
{
"name": "Party A",
"description": "Very Good ..!!!",
"category": {
"ID": 1
}
Json Ответ:
{
"name": "Party A",
"description": "Very Good ..!!!",
"category": {
"labelAr": null,
"labelEn": null,
"id": 3 (returned id also should be 1 instead of 3 what I am passing in request)
}
@Entity
@Table(name = "PARTY")
public class Party extends DataModelEntity {
private String name;
private String description;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "category_id")
...getter and setters...
@Entity
@Table(name = "PARTY_CATEGORY")
public class PartyCategory extends DataModelEntity {
}
@MappedSuperclass
public class DataModelEntity{
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer ID;
@ColumnDefault("0")
@Column(name = "RETIRED")
private Boolean retired = false;
@Column(name = "RETIRED_DATE")
@Temporal(TemporalType.TIMESTAMP)
private Date retiredDate;
@Column(name = "RETIRED_BY_UDBID")
private Number retiredByUDBID;
setter and getters...
Rest Controller:
@PostMapping(value = "/party/save")
public ResponseEntity saveParty(@RequestBody PartyRequest partyRequest) {
PartyResponse partyResponse = partyService.saveParty(partyRequest);
return ResponseEntity.ok(partyResponse);
}
Service:
@Override
public PartyResponse saveParty(PartyRequest partyRequest) {
Party party= new Party();
party.setName(partyRequest.getName());
party.setDescription(partyRequest.getDescription());
party.setCategory(partyRequest.getCategory());
Party party1= partyRepository.save(party);
PartyResponse partyResponse = modelMapper.map(party1, PartyResponse.class);
return partyResponse;