Hibernate-reactive: Exemple de configuration d'étape réactive d'hibernation Vert.X

Créé le 7 juin 2021  ·  10Commentaires  ·  Source: hibernate/hibernate-reactive

Bonjour les gars, pouvez-vous me dire où je peux obtenir un exemple pour configurer vertx web avec hibernate-reactive en utilisant le mode Stage ?

Je viens de trouver cet exemple qui utilise Mutiny :
https://how-to.vertx.io/hibernate-reactive-howto/

Merci d'avance.

question

Tous les 10 commentaires

Je pense qu'il n'y en a pas pour le moment.

En ce qui concerne l'usine de session Hibernate Reactive, vous pouvez en obtenir une qui utilise le mode Stage via :

  emf = Persistence
    .createEntityManagerFactory("pg-demo", props)
    .unwrap(Stage.SessionFactory.class);

Vous pouvez ensuite convertir un Uni en un CompletionStage (et vice-versa) avec :

Uni uni = ...
CompletionStage stage = uni.subscribeAsCompletionStage();
Uni uni =Uni.createFrom().completionStage( stage );

Par curiosité, pourquoi vouloir utiliser le mode Scène ?

Merci pour l'explication,
auparavant, je pensais utiliser le mode stage et vertx pour réduire les dépendances tierces,
d'ailleurs je ne suis pas familier avec la mutinerie, et j'avais quelques doutes pour utiliser cette bibliothèque. Est-il stable et a-t-il une bonne communauté de discussion ?

Je suis désolé d'avoir ouvert un cas insignifiant, la prochaine fois j'utiliserai les forums à la place.

Oui, Mutiny est assez stable. et ils répondent généralement aux questions assez rapidement. Vous pouvez trouver le site Web avec tous les détails sur la communauté ici : https://smallrye.io/smallrye-mutiny/

Quoi qu'il en soit, il n'y a rien de mal à utiliser l'API CompletionStage, je trouve juste que Mutiny vous aide à écrire un code plus propre.
Je vais essayer de créer un exemple qui utilise CompletionStage cette semaine mais, en attendant, vous pouvez essayer de le convertir en utilisant cette table dans la documentation Hibernate Reactive : http://hibernate.org/reactive/documentation/1.0/reference/html_single /#_apis_for_chaining_reactive_operations

Pas besoin d'être désolé, nous aimons les commentaires :-)

Je ne suis pas sûr qu'il soit vraiment nécessaire d'avoir un exemple séparé montrant Vert.x et CompletionStage , simplement parce que les exemples seraient si similaires. Et je suis d'accord que Mutiny est une API beaucoup plus confortable à utiliser avec les RH. Mais je suppose que si vous voulez le faire, ce n'est probablement pas beaucoup de travail. Je ne pense pas que je dérangerais.

J'ai créé cet alias JBang de l'exemple qui n'utilise pas Mutiny : https://github.com/DavideD/jbang-rep/blob/main/StageVerticle.java

Une fois JBang installé, vous pouvez l'exécuter avec :

jbang stage-verticle@DavideD/jbang-rep

Et vous pouvez l'ouvrir dans votre ide (IDEA par exemple) avec :

jbang edit --open  stage-verticle@DavideD/jbang-rep

(Même si vous n'êtes pas familier avec JBang, tant que vous copiez cette classe dans un nouveau projet et ajoutez les dépendances en haut, cela fonctionnera).

Quoi qu'il en soit, cela devrait vous donner une idée sur la façon d'utiliser Future et CompletionStage.
Mais je pense toujours que vous devriez essayer Mutiny.

À votre santé.

Je clos ce sujet mais n'hésitez pas à me contacter si vous avez d'autres questions.

Grâce à @DavideD et @gavinking , j'ai lu et essayé l'exemple que vous avez donné, et cela fonctionne. Bien sûr, je vais essayer d'utiliser Mutiny, je viens de découvrir qu'il offre des expériences de développeur que Stage API, je pense. C'est juste que parfois je dois être lié par une politique pour choisir Stage ou Mutiny.

Salutations

@arifpratama398 J'ai remarqué quelques erreurs dans l'exemple. Je ne tenais pas toutes les promesses et je créais l'usine à deux reprises. Je l'ai mis à jour. Si vous utilisez jbang, assurez-vous de l'exécuter avec jbang --fresh stage-verticle@DavideD/jbang-rep .

De plus, l'exemple d'origine ne ferme jamais l'usine, mais je l'ai ajouté à la méthode d'arrêt.
@gavinking Il devrait y avoir une fermeture d'usine lorsque le verticule est arrêté, n'est-ce pas?

Probablement.

Je suppose que dans ce cas, cela ne fait aucune différence, mais c'est quelque chose à garder à l'esprit pour les applications réelles.

Cette page vous a été utile?
0 / 5 - 0 notes