Séquence Hibernate JPA pour la colonne non-identifiant
Question :
Est-il possible de exploiter une séquence de base de données pour générer des valeurs pour une colonne de table qui n'est pas désignée comme identifiant ou composant d'un identifiant composite à l'aide d'Hibernate JPA ?
Réponse :
Hibernate JPA ne prend pas en charge la génération automatisée de valeur pour les propriétés qui ne sont pas désignées comme identifiant. L'annotation @GeneratedValue est exclusivement utilisée en conjonction avec @Id pour créer des valeurs à incrémentation automatique.
Solution de contournement :
Pour contourner cette limitation, envisagez de créer une entité distincte avec un identifiant généré, tel que :
@Entity public class GeneralSequenceNumber { @Id @GeneratedValue(...) private Long number; } @Entity public class MyEntity { @Id .. private Long id; @OneToOne(...) private GeneralSequnceNumber myVal; }
Cette approche consiste à établir une relation biunivoque entre l'entité principale et l'entité séquence. En exploitant cette entité distincte, Hibernate peut générer la valeur de séquence unique qui peut être attribuée à la propriété souhaitée dans l'entité principale.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!