Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

génération d'un numéro de séquence

3 réponses
Avatar
blured75
Bonjour,

J'aurais besoin de générer en Java un identifiant unique incrémenté de
la même façon qu'un numéro de séquence d'une table Oracle, afin
d'avoir un identifiant unique par instance de classe. Je ne souhaite
pas me servir du pattern UUID qui permet d'avoir un identifiant unique
quelque soit la classe.

Avez-vous déjà implémenté une génération de ce type ?

Merci d'avance.
A+



Ex numéro de séquence désiré :
classe A
instance1 -> numSeq = 1
instance2 -> numSeq = 2

classe B
instance1 -> numSeq = 1
instance2 -> numSeq = 2
instance3 -> numSeq = 3


Ex d'UUID :
classe A
instance1 -> UUID = 44132123156AREAZRAZ4121541248
instance2 -> UUID = 44132123156AREAZRAZ4121462258

classe B
instance1 -> UUID = 874AZ5E4A56Z4E56AZ4156AZ1RAZ8
instance2 -> UUID = F454DSFF4D89SF4Z6E81RZE1RZE6R
instance3 -> UUID = ERZE44REZ98R4EZR4ZE6R1Z6E5RE4

3 réponses

Avatar
jerome moliere
denis wrote:
Bonjour,

J'aurais besoin de générer en Java un identifiant unique incrémenté de
la même façon qu'un numéro de séquence d'une table Oracle, afin
d'avoir un identifiant unique par instance de classe. Je ne souhaite
pas me servir du pattern UUID qui permet d'avoir un identifiant unique
quelque soit la classe.

Avez-vous déjà implémenté une génération de ce type ?
non pas vraiment, mais cela se ressemble fortement non?

cela me fait penser a une grosse map persistante non?
pas trop complique a coder ...

Jerome

--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003
http://www.editions-eyrolles.com/php.informatique/index.php3?xdÑ2eccd83077cb3683315026cd3b7586

Avatar
Tioune
"jerome moliere" a écrit dans le message de
news:bp0drj$2dvn$
denis wrote:
Bonjour,

J'aurais besoin de générer en Java un identifiant unique incrémenté de
la même façon qu'un numéro de séquence d'une table Oracle, afin
d'avoir un identifiant unique par instance de classe. Je ne souhaite
pas me servir du pattern UUID qui permet d'avoir un identifiant unique
quelque soit la classe.

Avez-vous déjà implémenté une génération de ce type ?
non pas vraiment, mais cela se ressemble fortement non?

cela me fait penser a une grosse map persistante non?
pas trop complique a coder ...

Jerome

--
Auteur cahier du programmeur Java tome 2 - Eyrolles 10/2003

http://www.editions-eyrolles.com/php.informatique/index.php3?xdÑ2eccd83077cb3683315026cd3b7586




Bonjour,

Pour ma part je trouve que l'identifiant devrait être une propriété de la
classe.
Et avoir également un static qu'on incrémente à chaque constructeur pour
maintenir la séquence.

Désolé, ça fait un moment que je n'ai pas fait de Java mais cela devrait
ressembler à :
-----------

public class MaClasse
{
private long id;
publis static long cpt;
...

MaClasse()
{
...
id = cpt;
cpt++;
}

// Récupération de l'identifiant
public long getId()
{
return this.id;
}
// Pas de setter, l'identifiant n'est pas modifiable a priori
}


Avatar
Patrick Gras
"denis" wrote in message
news:
Bonjour,

J'aurais besoin de générer en Java un identifiant unique incrémenté de
la même façon qu'un numéro de séquence d'une table Oracle, afin
d'avoir un identifiant unique par instance de classe. Je ne souhaite
pas me servir du pattern UUID qui permet d'avoir un identifiant unique
quelque soit la classe.

Avez-vous déjà implémenté une génération de ce type ?

Merci d'avance.
A+



Ex numéro de séquence désiré :
[...]


Hello,

La question est de savoir quelle est la portée et la durée de vie de tes
identifiants ?

Est-ce qu'ils doivent être unique dans une seule JVM ?
Est-ce qu'ils doivent être unique pour la durée d'exécution du programme ?
ou aussi pour les exécutions futures ?

Dans le cas le plus simple une variable statique dans chaque classe suffit
(Si il y a beaucoup de classe mieux vaut prévoir une Factory qui gère les
Ids...)

Dans le cas le plus compliqué il faudrait utiliser une Factory qui conserve
les derniers Id dans une BD...

-Patrick