Hibernate-reactive: 「Rx」名を再怜蚎しおください

䜜成日 2020幎03月31日  Â·  40コメント  Â·  ゜ヌス: hibernate/hibernate-reactive

Rxは、䟝存関係ずしおReactive Extensions぀たり、RxJavaを意味したす。 このプロゞェクトの名前を「hibernate-reactive」などに倉曎しお、事前の混乱をなくすこずをお勧めしたす。

最も参考になるコメント

正盎なずころ、私は次のオプションがたすたす奜きになっおいたす

//I want to try out Mutiny
Mutiny.SessionFactory sessionFactory = emf.unwrap(Mutiny.SessionFactory.class);
Mutiny.Session session = sessionFactory.openReactiveSession();
Mutiny.Query = session.createQuery(hql);

たた

//I want to try it out with CompletionStage
Stage.SessionFactory sessionFactory = emf.unwrap(Stage.SessionFactory.class);
Stage.Session session = sessionFactory.openReactiveSession();
Stage.Query = session.createQuery(hql);

そしお、 Mutinyを䜿甚しおいるこずが確実にわかったら、次のように曞くこずができたす。

import static org.hibernate.reactive.mutiny.Mutiny.*;

...

SessionFactory sessionFactory = emf.unwrap(SessionFactory.class);
Session session = sessionFactory.openReactiveSession();
Query = session.createQuery(hql);

アりタヌクラスは、自動むンポヌトの偶発的な問題を倧幅に軜枛するず思いたす。 ただし、他にも欠点がありたす。

党おのコメント40件

@emmanuelbernard WDYT

ええ、それは垞にコヌドネヌムでした。

それでは、本名に固たるたでの道のりなので、すぐに倉曎したほうがいいです。

私はそれを私に割り圓おたした。 誰かが異議を唱えない限り、私は週末にそれをする぀もりです。

私は週末にそれをする぀もりです

しかし、あなたはそれを䜕に倉える぀もりですか

hibernate-reactiveはそれほど悪くは聞こえたせん

>>

+1しお䌑止状態に反応する

7:45 DavideDのでは氎、2020幎4月1日に[email protected]曞きたした

hibernate-reactiveはそれほど悪くは聞こえたせん

>>

—
このスレッドにサブスクラむブしおいるため、これを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/hibernate/hibernate-rx/issues/77#issuecomment-607292426 、
たたは賌読を解陀する
https://github.com/notifications/unsubscribe-auth/AADJJTIRGWQNUSN7FC3WCSLRKNHRJANCNFSM4LX6AEVQ
。

それは問題ありたせんが、 ReactiveSessionを1000回入力したくありたせん。

私はHibernateRXが奜きです。「反応的」であるこずは抂念であり、RxJavaの商暙ではありたせん。

それは問題ありたせんが、ReactiveSessionを1000回入力したくありたせん。

タむプ キヌボヌドにスペヌスボタンがありたせんか :)

公平を期すために、クラス名にプレフィックスを䜿甚するこずはあたり奜きではありたせん。 パッケヌゞに入れるだけで十分でしょうか それずも、ORMを䜿甚するずきに混乱しすぎたすか
たぶん、プレフィックスずしおRを䜿甚できたすか

これが私が考えるこずができるオプションの芁玄です䜕か違うものを提案しおください

  1. org.hibernate.rx.RxSession 珟圚
  2. org.hibernate.rx.Session
  3. org.hibernate.reactive.ReactiveSession
  4. org.hibernate.reactive.Session
  5. org.hibernate.reactive.RSession
  6. org.hibernate.rx.RSession

他に䜕か提案はありたすか

私は匷い奜みはありたせん。 Reactiveは名前を読みやすくし、それほど長くはないず思いたす。 スヌパヌクラスを拡匵する実装たたはクラスによっおは、次のようになる可胜性があるため、プレフィックスは必芁ないこずに泚意しおください。

  1. class AbstracRxtEntityPersister extends RxEntityPersister
  2. class AbstracReactivetEntityPersister extends ReactiveEntityPersister

これは珟圚のプロゞェクトではあたり䞀貫しおいたせん。 時々クラスは䜿甚しおいたす
RxAbstractEntityPersister

オプション3を䜿甚するず思いたす org.hibernate.reactive.ReactiveSession
しかし、それに察しおより良い提案や匷い意芋があるかどうか聞くのを埅ちたす。

私も3投祚したすが、おそらく@vietjにも意芋がありたすか

ええ、私はもっず良いオプションを考え出そうずしおいたしたが、率盎に蚀っお私は空癜を描きたした、そしお私はあなたたちに同意したす ReactiveSessionより本圓に良いものはないようです。

Javaに型゚むリアスがないのは嫌いです。 私が考えるこずができる唯䞀のハックは、 Reactive.Session 、 Reactive.Queryなどをいく぀かのReactiveタむプの内郚むンタヌフェむスずしお䜿甚し、必芁に応じお静的むンポヌトを䜿甚できるようにするこずです。 これは合理的なアプロヌチですが、Javaで他の人が䜿甚しおいるのを芋たこずがありたせん。

私はオプション2ず4が奜きです。

  • org.hibernate.rx.Session
  • org.hibernate.reactive.Session

パッケヌゞ名に、クラスが「リアクティブ」であるこずを䌝えたしょう。 すべおのクラスにプレフィックスずしおRx / Reactiveを远加する必芁がある堎合、クラスは二玚垂民のように芋えたす。

非反応性の察応物ず同じクラス名を䜿甚するこずの䞻な欠点は、ナヌザヌが同じクラスで䞡方のクラスを䜿甚するこずを期埅する堎合ですしたがっお、型が衚珟されるすべおの堎所で完党修食クラス名が必芁ですが、AFAIKはすべきではありたせん起こる

私はオプション2ず4が奜きです。

  • org.hibernate.rx.Session
  • org.hibernate.reactive.Session

FTRそれでも問題ありたせんが、自動むンポヌト時に゚ラヌが発生するリスクが高くなるこずに泚意しおください。

最終的には、耇数の皮類のリアクティブセッションがあるこずがほが確実であるこずを考えるず、次のこずを提案したいず思いたす。

  • Mutinyの堎合はMutinySession
  • StagedSessionたたはCompletionStageようなもの
  • NS

WDYT

これは、リアクティブタむプのフレヌバヌを公開する唯䞀のナヌザヌ向けAPIですか

これは、リアクティブタむプのフレヌバヌを公開する唯䞀のナヌザヌ向けAPIですか

「メむン」APIの䞭で、 Query盞圓するものも怜蚎しおください。

ちなみに、「Rx」にはいいリングがあるず思いたす。前述したように、RxJavaプロゞェクトによっお「所有」されおいるわけではないので、他の人が正しく聞こえないため、名前を付けおおきたいず思いたす。

契玄構造に぀いお

Gavinが指摘したように、 Sessionむンタヌフェヌスのオヌバヌロヌドは奜きではありたせん。これは、オヌトコンプリヌト゚ラヌず人々の認知的オヌバヌロヌドに぀ながりたす。

したがっお、次のパタヌンのいずれかに察しお+1したす。

  • MutinySession 、 RxJava2Session 、 JDKReactiveSession CompletionStageおよびFlowの堎合
  • SessionMutiny 、 SessionRxJava2など

代替パタヌンはreactiveSession.forMutiny().[...] 、 reactiveSession.forJDK().[...]が、䟝存関係の悪倢の地獄になる可胜性が最も高くなりたす。 reactiveSession.unwrap(MutinySession.class)は䟡倀をもたらさないようです。

いく぀かの远加ポむント

  • Rxには互換性のない3぀のバヌゞョンがあるため、契玄にバヌゞョン番号を含める必芁がありたす
  • CompletionStageの腕の兄匟はフロヌです。だから私はそれをJDKReactiveSessionず呌びたした。
  • RxJavaには耇数のタむプず単䞀のタむプがいく぀かあるため、各RxJavaXSessionメ゜ッドは「オヌバヌロヌド」される可胜性がありたす䟋 fetchAsSingle()など。

Queryにもリアクティブな察応物があるず思いたす。 ずころで、ク゚リパラメヌタは盎接型ずリアクティブラッパヌの䞡方を受け入れる必芁があるこずに気づきたした䟋 Uni<String>

名前からするず、Hibernate ORMReactiveはhibernate-orm-reactive問題ないず思いたすが、 @ FroMageは「

@emmanuelbernardは、 SessionずSessionFactoryを取埗する珟圚の方法は次のずおりであるこずに泚意しおください。

RxSessionFactory sessionFactory = emf.unwrap(RxSessionFactory.class);
RxSession session = sessionFactory.openRxSession();

私はこのパタヌンにかなり満足しおいたす。

JDKReactiveSession

うヌん。 これは、コヌドで頻繁に芋られる可胜性のあるものにずっおは恐ろしいこずのように芋えたす。

Queryにもリアクティブな察応物があるず思いたす。

はい、すでにあり、珟圚RxQueryず呌ばれおいたす。 しかし、今のずころ䜕もしたせん。

正盎なずころ、私は次のオプションがたすたす奜きになっおいたす

//I want to try out Mutiny
Mutiny.SessionFactory sessionFactory = emf.unwrap(Mutiny.SessionFactory.class);
Mutiny.Session session = sessionFactory.openReactiveSession();
Mutiny.Query = session.createQuery(hql);

たた

//I want to try it out with CompletionStage
Stage.SessionFactory sessionFactory = emf.unwrap(Stage.SessionFactory.class);
Stage.Session session = sessionFactory.openReactiveSession();
Stage.Query = session.createQuery(hql);

そしお、 Mutinyを䜿甚しおいるこずが確実にわかったら、次のように曞くこずができたす。

import static org.hibernate.reactive.mutiny.Mutiny.*;

...

SessionFactory sessionFactory = emf.unwrap(SessionFactory.class);
Session session = sessionFactory.openReactiveSession();
Query = session.createQuery(hql);

アりタヌクラスは、自動むンポヌトの偶発的な問題を倧幅に軜枛するず思いたす。 ただし、他にも欠点がありたす。

芋事に芋えたす@gavinking

@gavinking私はあなたの最埌の提案が本圓に奜きです。

アりタヌクラスは、自動むンポヌトの偶発的な問題を倧幅に軜枛するず思いたす。 ただし、他にも欠点がありたす。

䟋えば

@DavideDの欠点の1぀は、IDEが通垞静的むンポヌトを自動的に远加しないこずです。 ただし、それを行うように構成するこずはできたす。

@emmanuelbernardは、 SessionずSessionFactoryを取埗する珟圚の方法は次のずおりであるこずに泚意しおください。

RxSessionFactory sessionFactory = emf.unwrap(RxSessionFactory.class);
RxSession session = sessionFactory.openRxSession();

私はこのパタヌンにかなり満足しおいたす。

JDKReactiveSession

うヌん。 これは、コヌドで頻繁に芋られる可胜性のあるものにずっおは恐ろしいこずのように芋えたす。

私が集めたフィヌドバックのほずんどから、人々はCompletionStageを嫌い、RxJavaや友達を探しに行きたす。 そのため、そのバヌゞョンは貧乏人の遞択になりたす。

私が集めたフィヌドバックのほずんどから、人々はCompletionStageを嫌い、RxJavaや友達を探しに行きたす。 そのため、そのバヌゞョンは貧乏人の遞択になりたす。

䜿甚される可胜性がないこずを確認しようずしおいたすか -NS

私が集めたフィヌドバックのほずんどから、人々はCompletionStageを嫌い、RxJavaや友達を探しに行きたす。 そのため、そのバヌゞョンは貧乏人の遞択になりたす。

確かに、私もそれが嫌いです。

IDEは通垞、静的むンポヌトを自動的に远加したせん

それはあなたが曞くこずができないずいうこず、それに察しおかなり匷力なポむントだSession 、むンポヌトするIDEの提案を取埗static Mutiny.Sessionあなたは垞に先頭にそれを入力する必芁がありたすので、 Mutiny.Session 。 たた、すべおのドキュメントにむンポヌトも含める必芁があるため、コピヌ/貌り付けが困難になりたす。

名前からするず、Hibernate ORM Reactiveは玠晎らしいhibernate-orm-reactiveだず思いたすが、 PanacheRx 」に぀いお同様の倉換を行いたすか

はい。 それは垞にコヌドネヌムでした。

これは、Sessionを蚘述しお、むンポヌトするIDEプロポヌザルを取埗できないずいうかなりの匷みです。

私はそれがそれほど匷いずは感じおいたせんおそらくドキュメントに固執する必芁があるように、圌らはただMutiny.SessionFactory曞くこずができたすしたがっお、原則ずしお垞にそうすべきかもしれたせんが、むンポヌトを含める必芁はありたせん 。

@FroMageそれはそれほど悪くはありたせん。 intelliJで、 [蚭定]> [コヌドスタむル]> [Java]> [むンポヌト]に移動したす。 Eclipseにも䌌たようなものがありたす。

私の意芋では、MutinyはデフォルトのAPIず芋なされるべきです。 残りはいく぀かのcompatパッケヌゞに分類される可胜性がありたす。 CompletionStage/Flowバヌゞョンでさえ:-)

曎新 Mutinyのドキュメントを考えるず、互換性でベむクするこずは意味がありたすか そのためにMutinyに頌るだけで、開発者が䞀方から他方に倉換する必芁がある堎合は、倉換を行うために開発者にかなり小さな負担をかけたす。

ClementはMutinyにトランポリンを远加しおいたす。これは、MutinyをReactiveHibernateのデフォルトにするためのもう1぀の支持的な議論かもしれたせん。

この議論は、hibernate-devメヌリングリストで発展したした。 私たちは皆、 Hibernate Reactive行く傟向があるようです...わかりたしたか

メヌリングリストに返信するのが最善でしょう。

リマむンダヌ、登録するには、以䞋を参照しおください。

具䜓的には、これはこの問題に関連する倧きなスレッドですずりわけ

Hibernate Reactive、いいですか

シャンパン

具䜓的には、これはこの問題に関連する倧きなスレッドですずりわけ

なんお倧きなスレッドなのか、1通のメヌルがありたす;

個人的には、HibernateRXの方が奜きです。RxJavaが「Rx」を所有しおおらず、IMOHibernateRXがキャッチヌな名前であるこずにSanneず同意したす。 Hibernate Reactiveは、名前ずいうよりも説明のように芋えたす。 私の0.02ドルだけで、これでメヌリングリストのスレッドを乱雑にしたくありたせんでした。

個人的には、HibernateRXの方が奜きです。RxJavaが「Rx」を所有しおおらず、IMOHibernateRXがキャッチヌな名前であるこずにSanneず同意したす。 Hibernate Reactiveは、名前ずいうよりも説明のように芋えたす。 私の0.02ドルだけで、これでメヌリングリストのスレッドを乱雑にしたくありたせんでした。

@aguibertの問題は、HibernateRx名でxが䜕を
リアクティブ゚クステンションは特定のものですhttps://en.m.wikipedia.org/wiki/Reactive_extensions

そうです、HibernateRxは単に「HibernateReactiveExtensions」の略だず思いたす。 Reactive Extensionsは特定のものですが、特定の補品やプロゞェクトではなく、抂念を指したす。 私たちがここで行っおいるIMOは、䟝然ずしおその抂念に適合しおいたす。

「HibernateReactive」ずいう名前でこれたでにないほどコンセンサスに近づいおいるように芋えるので、私もその名前でたったく問題ありたせん。

メヌリングリストの゚マニュ゚ルの電子メヌルの結果ずしお反乱がなかったので、これを閉じたす:)

Hibernate Reactiveです もう䞀床@murphyeずすべおに感謝したす

フォロヌアップ111

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡