Hibernate-reactive: Vert.X рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд░рд┐рдПрдХреНрдЯрд┐рд╡ рд╕реНрдЯреЗрдЬ рд╕реЗрдЯрдЕрдк рдЙрджрд╛рд╣рд░рдг

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рдЬреВрди 2021  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: hibernate/hibernate-reactive

рд╣реИрд▓реЛ рджреЛрд╕реНрддреЛрдВ, рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдЯреЗрдЬ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ-рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдХреЗ рд╕рд╛рде рд╡рд░реНрдЯреЗрдХреНрд╕ рд╡реЗрдм рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╣рд╛рдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ?

рдореБрдЭреЗ рдмрд╕ рдпрд╣ рдЙрджрд╛рд╣рд░рдг рдорд┐рд▓рд╛ рдЬреЛ Mutiny рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ:
https://how-to.vertx.io/hibernate-reactive-howto/

рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдзрдиреНрдпрд╡рд╛рджред

рд╕рднреА 10 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдЗрд╕ рд╕рдордп рдХреЛрдИ рд╣реИред

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд░рд┐рдПрдХреНрдЯрд┐рд╡ рд╕рддреНрд░ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрдЯреЗрдЬ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:

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

рдлрд┐рд░ рдЖрдк рдПрдХ рдпреВрдиреА рдХреЛ рдПрдХ рдХрдВрдкреНрд▓реАрд╢рдирд╕реНрдЯреЗрдЬ (рдФрд░ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд) рдореЗрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ:

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

рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛рд╡рд╢, рдЖрдк рд╕реНрдЯреЗрдЬ рдореЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?

рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж,
рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рддреАрд╕рд░реЗ рдкрдХреНрд╖ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдЬ рдореЛрдб рдФрд░ рд╡рд░реНрдЯреЗрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рдерд╛,
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореИрдВ рд╡рд┐рджреНрд░реЛрд╣ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдБ, рдФрд░ рдореБрдЭреЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдВрджреЗрд╣ рдерд╛ред рдХреНрдпрд╛ рдпрд╣ рд╕реНрдерд┐рд░ рд╣реИ рдФрд░ рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╕рдореБрджрд╛рдп рд╣реИ?

рдореБрдЭреЗ рдорд╣рддреНрд╡рд╣реАрди рдорд╛рдорд▓реЗ рдХреЛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рдЕрдЧрд▓реА рдмрд╛рд░ рдореИрдВ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдордВрдЪреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред

рд╣рд╛рдВ, рд╡рд┐рджреНрд░реЛрд╣ рдХрд╛рдлреА рд╕реНрдерд┐рд░ рд╣реИред рдФрд░ рд╡реЗ рдЖрдо рддреМрд░ рдкрд░ рдмрд╣реБрдд рдЬрд▓реНрджреА рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджреЗрддреЗ рд╣реИрдВ рдЖрдк рдпрд╣рд╛рдВ рд╕рдореБрджрд╛рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://smallrye.io/smallrye-mutiny/

рд╡реИрд╕реЗ рднреА, рдХрдВрдкреНрд▓реАрд╢рдирд╕реНрдЯреЗрдЬ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рднреА рдЧрд▓рдд рдирд╣реАрдВ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рджреНрд░реЛрд╣ рдЖрдкрдХреЛ рдХреНрд▓реАрдирд░ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдЬреЛ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХрдВрдкреНрд▓реАрд╢рдирд╕реНрдЯреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдмреАрдЪ, рдЖрдк рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдбреЙрдХреНрд╕ рдореЗрдВ рдЗрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: http://hibernate.org/reactive/documentation/1.0/reference/html_single /#_apis_for_chaining_reactive_operations

рдХреНрд╖рдорд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдореЗрдВ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрд╕рдВрдж рд╣реИ :-)

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ Vert.x рдФрд░ CompletionStage рджрд┐рдЦрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рдордЬрдмреВрдд рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрджрд╛рд╣рд░рдг рдЗрддрдиреЗ рд╕рдорд╛рди рд╣реЛрдВрдЧреЗред рдФрд░ рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ рдХрд┐ рдПрдЪрдЖрд░ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╡рд┐рджреНрд░реЛрд╣ рдПрдХ рдЕрдзрд┐рдХ рдЖрд░рд╛рдорджрд╛рдпрдХ рдПрдкреАрдЖрдИ рд╣реИред рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдЖрдк рдЗрд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдпрд╣ рдЬреНрдпрд╛рджрд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореИрдВ рдкрд░реЗрд╢рд╛рди рд╣реЛрдКрдВрдЧрд╛ред

рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдЗрд╕ JBang рдЙрдкрдирд╛рдо рдХреЛ рдмрдирд╛рдпрд╛ рд╣реИ рдЬреЛ рд╡рд┐рджреНрд░реЛрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ: https://github.com/DavideD/jbang-rep/blob/main/StageVertical.java

рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдк рдЬреЗрдмреАрдВрдЧ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд▓реЗрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдЗрд╕рдХреЗ рд╕рд╛рде рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:

jbang stage-verticle@DavideD/jbang-rep

рдФрд░ рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЖрдИрдбреАрдИрдП) рдореЗрдВ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ:

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

(рднрд▓реЗ рд╣реА рдЖрдк JBang рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рди рд╣реЛрдВ, рдЬрдм рддрдХ рдЖрдк рдЗрд╕ рд╡рд░реНрдЧ рдХреЛ рдПрдХ рдирдП рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХреЙрдкреА рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рд╢реАрд░реНрд╖ рдкрд░ рдирд┐рд░реНрднрд░рддрд╛рдПрдБ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛)ред

рд╡реИрд╕реЗ рднреА, рдпрд╣ рдЖрдкрдХреЛ рднрд╡рд┐рд╖реНрдп рдФрд░ рдкреВрд░реНрдгрддрд╛ рдЪрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡рд┐рдЪрд╛рд░ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред
рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЕрдм рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╡рд┐рджреНрд░реЛрд╣ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЪреАрдпрд░реНрд╕ред

рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдФрд░ рдкреНрд░рд╢реНрди рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

@DavidD рдФрд░ @gavinking рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдХреЛ рдкрдврд╝рд╛ рдФрд░ рдЖрдЬрдорд╛рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореИрдВ рд╡рд┐рджреНрд░реЛрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдореБрдЭреЗ рдЕрднреА рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдЯреЗрдЬ рдПрдкреАрдЖрдИ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдбреЗрд╡рд▓рдкрд░ рдЕрдиреБрднрд╡ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИред рдмрд╛рдд рд╕рд┐рд░реНрдл рдЗрддрдиреА рд╣реИ рдХрд┐ рдХрднреА-рдХрднреА рдореБрдЭреЗ рд╕реНрдЯреЗрдЬ рдпрд╛ рд╡рд┐рджреНрд░реЛрд╣ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрддрд┐ рд╕реЗ рдмрд╛рдзреНрдп рд╣реЛрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред

рд╕рд╛рджрд░

@ arifpratama398 рдореИрдВрдиреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдХреБрдЫ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреЗрдЦреА рд╣реИрдВред рдореИрдВ рд╕рд╛рд░реЗ рд╡рд╛рджреЗ рдкреВрд░реЗ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ рдФрд░ рдореИрдВ рджреЛ рдмрд╛рд░ рдлреИрдХреНрдЯреНрд░реА рдмрдирд╛ рд░рд╣рд╛ рдерд╛ред рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рд╣реИред рдпрджрд┐ рдЖрдк jbang рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ jbang --fresh stage-verticle@DavideD/jbang-rep рд╕рд╛рде рдЪрд▓рд╛рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред

рд╕рд╛рде рд╣реА, рдореВрд▓ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЛ рдХрднреА рдмрдВрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕реНрдЯреЙрдк рд╡рд┐рдзрд┐ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рд╣реИред
@gavinking рд╡рд░реНрдЯрд┐рдХрд▓ рдмрдВрдж рд╣реЛрдиреЗ рдкрд░ рдлреИрдХреНрдЯреНрд░реА рдмрдВрдж рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛?

рд╢рд╛рдпрджред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдХреБрдЫ рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

tsegismont picture tsegismont  ┬╖  20рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

blafond picture blafond  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

aguibert picture aguibert  ┬╖  28рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

hantsy picture hantsy  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

gavinking picture gavinking  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ