J'ai appelé un objet de classe:Enregistrement d'un objet avec des paramètres chargés et désireux OptimisticLockException
@Entity
public class Classroom {
@ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST })
@JoinColumn(name = "girl", referencedColumnName = "id", nullable = true)
private GirlsInformationObject girl;
@ManyToOne(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST })
@JoinColumn(name = "boy", referencedColumnName = "id", nullable = true)
private BoysInformationObject boy;
}
Maintenant, imaginez que j'ai deux fils, tous deux conserver des informations sur la salle de classe et mettre à jour l'objet si nécessaire. L'un des fils est la mise à jour de l'objet avec des informations sur les filles, et l'autre met à jour l'objet avec des informations sur les garçons.
Imaginez que les deux threads accèdent à la même entrée Classroom en même temps. Les threads ajustent le InformationObject approprié et stockent l'objet dans la base de données, en utilisant ClassroomRepository.save(classRoom)
. Puis-je empêcher l'OptimisticLockException si les InformationObjects seraient paresseusement chargés?
La question était de savoir si je pouvais échapper à tout ce travail en définissant simplement le type 'FetchType.EAGER', car ce n'est pas cet objet qui est mis à jour. – Joetjah