Question

J'utilise JPA 2 pour une application d'entreprise, et mon DBA vient de me frapper avec une touche.

Ils me veulent utiliser le générateur centralisé d'identification d'objet du groupe pour toutes mes tables . Ce moyen plutôt que d'utiliser des valeurs de table ou une table de séquence, Je vais avoir besoin d'appeler un service Web pour obtenir un lot de ~ 50 ids .

Ensuite, comme je persiste tout nouvel objet, je besoin d'injecter cet identifiant premier , et sauf que la table.

Alors, comment pourrais-je manipuler la colonne @Id d'une entité pour gérer cela.

Est-ce aussi simple que la mise sur une touche avant je persiste? Je pense que ce serait jeter une sorte d'entité non géré avec une erreur de jeu d'identification.

Était-ce utile?

La solution

Mise à jour:

La meilleure méthode consiste à spécifier en fait une stratégie de séquence sur les champs générés et spécifiez une classe de séquence personnalisée.

La méthode JPA appellera alors nextId () de cette classe à chaque fois qu'il insère un nouvel objet.

Cette méthode permet des graphiques complets à persistèrent sans intervenir sur chaque entité manuellement.


figured it out. complexe Etonnamment,.) - il suffit de retirer l'annotation GeneratedValue du champ de clé

Il est destiné aux autochtones Ids ou par courrier électronique comme SSN, mais fonctionne quelle que soit la source.

@Entity
public class Client{

    @Id
    @Column(name="CLNT_ID") 
    private long key;
    @Column(name="CLNT_NUM")
    private String clientNumber;
...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top