en utilisant une séquence de base de données pour les colonnes non ID dans Hibernate JPA
lorsque vous travaillez avec Hibernate en tant que prodiseur JPA, vous pouvez rencontrer la nécessité de générer des valeurs pour des colonnes qui ne font pas partie de l'identifiant. Malheureusement, l'annotation @GeneratedValue, couramment utilisée pour les clés primaires de mise en œuvre automatique, n'est pas applicable dans ce scénario.
Tout d'abord, il est important de comprendre que HiberNate / JPA ne génére pas automatiquement des valeurs pour les propriétés non AD. L'annotation @GeneratedValue est uniquement utilisée pour gérer la génération de clés principale. Au lieu de cela, des valeurs générées par la base de données sont attendues.
pour surmonter cette limitation, envisagez de créer une entité distincte avec un identifiant généré, appelé «entité clé de substitution». La colonne non ID en question peut alors être associée à cette entité de substitution à l'aide d'une relation OnetoOne.
Exemple d'implémentation:
// Surrogate Key Entity @Entity public class SurrogateEntity { @Id @GeneratedValue(...) private Long number; } // Main Entity @Entity public class MyEntity { @Id private Long id; @OneToOne(...) private SurrogateEntity myVal; }
Avec cette approche, la valeur de la propriété MyVal sera générée par la base de données lors de la création d'une nouvelle instance MyEntity. Cette solution de travail vous permet d'utiliser les capacités de gestion de la valeur de base de données d'HiberNate pour les colonnes non ID.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3