"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment générer des séquences de base de données pour les colonnes non ID dans Hibernate JPA?

Comment générer des séquences de base de données pour les colonnes non ID dans Hibernate JPA?

Publié le 2025-04-17
Parcourir:171

How Can I Generate Database Sequences for Non-ID Columns in Hibernate JPA?

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.

Dernier tutoriel Plus>

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