J'ai un objet de domaine qui ressemble à ceci:Comment s'assurer que seule la ligne du tableau sera créée avec un état particulier?
class UserStuff
{
String userid;
boolean primordial;
}
Dans le tableau, primordial est un TINYINT. A L'utilisateur peut avoir éventuellement plusieurs UserStuff. Ce que je veux m'assurer, c'est qu'une seule ligne (la première ligne créée) aura un caractère primordial == 1. Toutes les lignes suivantes auront un caractère primordial == 0. En un coup d'œil, il n'y a pas de quoi s'inquiéter. Supposons que plusieurs demandes de création pour UserStuff peuvent se produire en même temps, comment puis-je garantir cette contrainte?
Mon idée initiale est de synchroniser sur une chaîne (dans le service de domaine)
class DomainService
{
public void create(UserStuff stuff)
{
synchronized(stuff.userid + "/userstuff/lock")
{
...
}
}
}
J'aimerais entendre des commentaires au sujet de cette & méthodes alternatives. Merci
Je ne suis pas familier avec le Duplicate KEY UPDATE, donc je vais devoir lire à ce sujet. Il est possible d'obtenir plusieurs mises à jour de client, donc la concurrence est un problème que je vais devoir gérer. – ashitaka