7
votes

Hibernate: appelez manuellement un séquenceGenerator?

J'ai écrit mon propre identifiant:

@GeneratedValue(
        strategy = GenerationType.SEQUENCE,
        generator = "MY_SEQUENCE")
@SequenceGenerator(
        allocationSize = 1,
        name = "MY_SEQUENCE",
        sequenceName = "MY_SEQUENCE_NAME")


0 commentaires

4 Réponses :


6
votes

Vous pouvez appeler essentiellement le séquenceGenerator de votre classe génératrice. En écrivant ce code. La classe génératrice personnalisée doit être xxx

}
Dans le code ci-dessus, Stud_nosequence est le nom de la séquence, que Shoulb soit créé. Dans la base de données par WRING Créer une séquence Stud_nosequence; Hibernate.string est le type qui sera renvoyé par la classe de séquenceGenerator.

et la classe de domaine sera xxx


0 commentaires

0
votes

Votre message a été utile de mettre à jour le nom de la séquence.

Parce que j'utilise une séquence par mois, et la configuration ne met pas à jour chaque génération d'identifiant.

Voici mon code: xxx


0 commentaires

1
votes
  @Id
  @GenericGenerator(name = "seq_id", strategy = "de.generator.AkteIdGenerator")
  @GeneratedValue(generator = "seq_id")
  @Column(name = "ID")
  private Integer Id;
http://blog.anorakgirl.co.uk/2009/01/custom-hibernate-sequence-generator-for-id-field/

0 commentaires

1
votes

Je ne sais pas si cela aide, mais je continuais à venir sur ce post lors de la recherche de ma réponse, que je n'ai pas trouvé posté nulle part, mais j'ai trouvé une solution moi-même. Je pensais donc que cela pourrait être le meilleur endroit à partager.

Si vous utilisez Hibernate en tant que fournisseur JPA, vous pouvez appeler manuellement un générateur d'identification attribué à une classe d'entité donnée. D'abord injecter le jpacontext: p> xxx pré>

puis obtenez l'org.hibernate interne.Id.identifierGenerator avec ceci: p>

Serializable id = generator.generate(session, new MyEntity());


0 commentaires