Bom dia,
Peguei um projeto recentemente e estou me deparando com um probleminha chato e que não faz muito sentido para mim.
Possuo as seguintes classes:
@Entity
@Table(name = "agency")
@Data
@EqualsAndHashCode(of = {}, callSuper = true)
public class Agency extends BaseEntity {
public static final String[] agencyPropertiesDontCopyForUpdate = { "id", "enabled", "createDate", "modifyDate" };
// omitido...
@JsonIgnoreProperties({ "client" })
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "owner_person_id")
private Person owner;
// omitido...
// @JsonIgnoreProperties({ "agency" })
@OneToMany(mappedBy = "agency", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<OtcUser> users;
// omitido...
}
@Entity
@Table(name = "person")
@Data
@EqualsAndHashCode(of = {}, callSuper = true)
public class Person extends BaseEntity {
public static final String[] personPropertiesDontCopyForUpdate = { "id", "enabled", "createDate", "modifyDate",
"client" };
@NotNull
@Size(min = 2, max = 35)
@Column(name = "first_name")
private String firstName;
@NotNull
@Size(min = 2, max = 35)
@Column(name = "last_name")
private String lastName;
@NotNull
@Size(min = 11, max = 11)
@CPF
private String cpf;
// omitido...
@Letters(type = LettersType.UPPER_CASE_WITHOUT_ACCENT)
@NotNull
@Size(min = 2, max = 2)
@Column(name = "country_of_residence")
private String countryOfResidence;
@JsonBackReference
// @JsonIgnoreProperties({ "personData" })
@OneToOne(mappedBy = "personData")
private Client client;
private Boolean enabled;
// @JsonBackReference
//// @JsonIgnoreProperties({ "personData" })
// @OneToMany(mappedBy = "personData", fetch = FetchType.EAGER)
// private List<TravelAgent> users;
@JsonIgnore
public String getCompleteName() {
return getFirstName() + " " + getLastName();
}
}
Quanto tempo ATUALIZAR a entidade "Person" que existe dentro de agência, ocorre que no log do console indica que realizou o 'update - sql', só que quando vou ver no banco de dados, não modificou nada.
Abaixo a classe "service":
public Agency update(Long id, Agency agency) {
Agency agencySaved = findAgencyById(id);
validateCity(agency);
validateProfile(agency);
validateGroups(agency);
List<Group> groups = groupRepository.findGroupsByHeadAgency(agencySaved.getId());
if (groups != null) {
for (Group group : groups) {
if (!agency.getGroups().contains(group)) {
throw new HeadAgencyRemovedFromGroupException();
}
}
}
BeanUtils.copyProperties(agency, agencySaved, Agency.agencyPropertiesDontCopyForUpdate);
Agency saveAgency = agencyRepository.save(agencySaved);
// Se for implementado essa parte, funcionará, já que estou salvando / alterando diretamente.
// Person saveOwner = personRepository.save(agency.getOwner());
return saveAgency;
}
Alguém sabe explicar o porque de não estar modificando no banco de dados? Lembrando que não ocorre erros no console, apenas indica que realizou o "update", mas no final não modifica nada no banco de dados.