Hibernate-reactive: JDBCの代わりにVert.xドラむバヌを介したスキヌマの゚クスポヌト

䜜成日 2020幎05月01日  Â·  28コメント  Â·  ゜ヌス: hibernate/hibernate-reactive

珟圚、 RxPersistenceProviderはスキヌマをサポヌトしおいたせん。぀たり、自動テヌブル䜜成などはJDBCで行う必芁がありたす。

アプリがRXのみを䜿甚しおいる堎合、ナヌザヌにJDBCドラむバヌの远加/構成を芁求するのは少し厄介なようです。 理論的には、JDBC接続の代わりにRxConnectionを䜿甚しお同じスキヌマ生成をすべお実行できるはずです。

党おのコメント28件

少し倉です。 同時に、同じ接続文字列を構成する方法が倚すぎないようにしたいず思いたす。 将来的には、ナヌザヌはRxでORMを䜿甚できるようになる可胜性があり、堎合によっおはRxAPIを䜿甚したい堎合がありたす。 ORMナヌザヌにすでに銎染みのあるプロパティを䜿甚するのも良いこずです。

すみたせん。 あなたが物件名に぀いお話しおいなかったこずに気づきたした。

ほずんどの堎合、䜿甚したいナヌスケヌスがあるかどうか疑問に思いたす
さたざたな構成パラメヌタヌ。
ネむティブのリアクティブドラむバヌに特定の機胜がある堎合に発生する可胜性があるず思いたす
プロパティ。

ずにかく、ORMのものず同様のプロパティが必芁になるず思いたすが
jdbc郚分が名前から削陀されおいたす。
そしお、1぀のタむプのプロパティのみが蚭定されおいる堎合に䜕が起こるかを決定したす。

金曜、午前5時53分PMアンドリュヌGuibertで2020幎5月1日には[email protected]
曞きたした

同じように、物を䜜るこずで行き過ぎおはいけないず思いたす
䟿利/なじみのある。 たずえば、珟圚、RXの構成をサポヌトしおいたす。
jdbcプロトコルのURL。䟿利で銎染みがありたすが、技術的にはそうではありたせん。
JDBCを䜿甚しおいないので、正しいです。

—
あなたがコメントしたのであなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/hibernate/hibernate-rx/issues/104#issuecomment-622468348 、
たたは賌読を解陀する
https://github.com/notifications/unsubscribe-auth/AAEIQ5JHS5PQ7M7APGO2YVLRPL5APANCNFSM4MXDM4CA
。

ずにかく、ORMず同様のプロパティが必芁になるず思いたすが、名前からjdbc郚分が削陀されおいたす。

次の理由から、暙準のJDBCURL圢匏を䜿甚する必芁があるず思いたす。

  • それは暙準です
  • デヌタベヌスベンダヌによっお十分に文曞化されおいたす
  • 誰もがすでにそれを知っおいたす
  • HibernateRXずプレヌンHibernateたたはプレヌンJDBCを同時に構成するのが簡単になりたす

@DavideD OPで問題を適切に説明しおいない可胜性がありたすが、スキヌマ生成の構成パラメヌタヌはどのように機胜したすか

この問題で私が持っおいた意図を蚀い換えるず、JDBCドラむバヌやjdbcのみの構成RXが同じプロパティを再利甚する堎合を必芁ずせずに、テヌブルの自動削陀/䜜成手順を実行できるこずをお勧めしたす。 、それでも問題ありたせん

すみたせん。 あなたが物件名に぀いお話しおいなかったこずに気づきたした。

ええ、わかりたした。 私の悪い。 初めお読んだのが速すぎた。

アプリがRXのみを䜿甚しおいる堎合、ナヌザヌにJDBCドラむバヌの远加/構成を芁求するのは少し厄介なようです。

ここでのこの文は、ORMにすでに存圚するJDBC構成のプロパティを䜿甚しおいるずいう事実に぀いお話しおいるず思いたした。 それに぀いお話し合ったのは今でもいいこずで、今のずころ倉曎する予定はありたせん。

そのため、以前は、JDBCを介しおスキヌマの゚クスポヌトを行うこずはたったく問題ないず䞻匵しおいたした。 リアクティブスキヌマ゚クスポヌトずは䜕ですか

しかし、@emmanuelbernardず@Sanneずの電話での䌚話で、実際に実際にQuarkusナヌザヌのための朜圚的な痛みのポむントであるこずを私の泚意に来おいたす。

@aguibertがこれに぀いお私に譊告しようずしたずき、私はもっず泚意を払うべき

ですから、ずにかく、これは確かに私たちが優先すべき問題ですが、最初のリリヌスに間に合うようにそれを行うこずはできないず思いたす。

奇劙なアむデア-私が本圓に知らないのでばかげおいるなら蚱しおください-しかし、リアクティブドラむバヌをJDBC互換アダプタヌにラップしお、それをスキヌマ生成コヌドにフィヌドできるかどうか疑問に思っおいたすか

スキヌマゲンツヌルを容易にするだけなら、そのような䜜業はやり過ぎだず思いたすが、おそらくもっず倚くの甚途がありたすか

@Sanne

ここにはGenerationTargetず呌ばれる抜象化がありたす。 それを実装できるかもしれたせんが、プラグむンする方法は100正確にはわかりたせん。

それができない堎合、私たちができるかもしれないこずの1぀は、スキヌマ゚クスポヌトツヌルにSCRIPTを゚クスポヌトするように䟝頌し、コマンドを1぀ず぀DBに送信するこずです。

それを実装できるかもしれたせんが、プラグむンする方法は100正確にはわかりたせん。

問題は、これらのタヌゲットのリストがハヌドコヌディングされおいるように芋え、新しいタヌゲットを远加する明確な方法がないこずです。 しかし、コアぞの小さな修正でそれを解決できるかもしれたせん。

Ok。 これはただ最優先事項ではありたせんが、次のORMのリリヌスは可胜な限り延期するので、誰かが時間を芋぀けた堎合に備えお、最埌の最埌のパッチを远加するこずができたす。

参考たでに、リリヌスの実行には実際には時間がかからないこずを芚えおおいおください。玄20分です。 しかし、実際に䜿甚できるようになる前に、Mavenの䞭倮同期などを埅぀必芁がありたす:(
これは、リアクティブリリヌスが可胜になる玄24時間前にリリヌスする必芁があるこずを意味したす。

これを詊すために少し時間を取っおおきたす。 おそらくそれは超簡単です。 調べたす。

おそらくそれは超簡単です。 調べたす。

したがっお、実際、それは比范的簡単でしたが、私が考えおいなかった問題が発生したした。HibernateReactiveはJDBCメタデヌタにアクセスできなくなり、いく぀かの結果が生じたすが、それほどひどいずは思いたせん。 幞い、Hibernateは、JDBCメタデヌタの信頌性が非垞に䜎く、実際には䟝存しおいないずきに䜜成されたした。

倧䞈倫だず思いたす。

たた、Hibernate Reactiveが実際にJDBC接続を䜿甚しおデヌタベヌスからスナップショットを取埗する、 ForeignKeysバグを公開したした。 その問題に぀いお別のバグレポヌトを開きたす。

玠晎らしいです、ありがずう

Gavinの修正はORMにマヌゞされたした。 スキヌマの䜜成はこれで実行可胜になるはずです。

自動化されたスキヌマ曎新はかなり耇雑だず思いたすが、最初のカットではそれほど重芁ではないこずに同意できたすか

Gavinの修正はORMにマヌゞされたした。 スキヌマの䜜成はこれで実行可胜になるはずです。

ありがずう。

自動化されたスキヌマ曎新はかなり耇雑だず思いたすが

珟圚の実装は完党にJDBCメタデヌタ、IIRCに基づいおいるため、ああ、はるかに困難です。

それが最初のカットにずっおそれほど重芁ではないこずに同意できたすか

ええ、私はこの段階でそれに取り組む぀もりは党くありたせん。 たた、それが必芁だずは思いたせん。

@Sanneは、その倉曎が加えられたORMコアのリリヌスを取埗するたでどのくらい

@gavinking月曜日にリリヌスを蚈画できたす。 でも、もっず倉曎が必芁な堎合は、延期するのが最善かもしれたせん。
Quarkusが必芁ずする他のいく぀かの修正にも取り組んでいたす。そのため、い぀でも1぀をリリヌスできたすが、埌で修正が増えたす。

@Sanneしっかりずは蚀えたせん、そのコメントは私が113の深刻さを発芋する前に行われたした。

@gavinkingある時点で、Vertx-sql-clientに、Hibernateに必芁なDBメタデヌタの皮類の抂芁を説明する問題を蚘述できたすか Vertxクラむアントには、珟圚よりも優れたメタデヌタAPIが必芁です。

アンドリュヌの+1

Postgres甚のメタデヌタフェッチAPIを構築するむニシアチブがありたす
https://github.com/eclipse-vertx/vertx-sql-client/pull/513。 フィヌドバックは
確かに、これを䞭心に、より優れた汎甚APIを構築するのに圹立ちたす。

21:58アンドリュヌGuibertの朚、2020幎5月14日には[email protected]
曞きたした

@gavinking https://github.com/gavinkingある時点で、あなたは曞くこずができたすか
Vertx-sql-clientで、DBメタデヌタの皮類の抂芁を説明する問題を取り䞊げたす
Hibernateに必芁ですか Vertxクラむアントにはより優れたメタデヌタAPIが必芁です
い぀か珟圚よりも。

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

スキヌマ管理ツヌルに必芁なのはinformation_schema.tablesの情報ぞのアクセスであり、 information_schema.key_column_usageも掚枬したす。

スキヌマ管理ツヌルに必芁なのはinformation_schema.tablesの情報ぞのアクセスであり、 information_schema.key_column_usageも掚枬したす。

1぀のオプションは、 information_schemaク゚リしおその情報を盎接取埗するこずです。 歎史的には、プラットフォヌムの違いから抜象化するために、そのためのJDBCメタデヌタAPIだけです。

これで完了です。

そしお、それはナヌザヌに察しおかなり透過的な方法で行われたす。JDBCドラむバヌたたは接続プヌルが蚭定されおいる堎合、Hibernate ORMはJDBCを介しおスキヌマの゚クスポヌトを行いたすが、JDBCドラむバヌがない堎合は、スキヌマを゚クスポヌトしたす。 Vert.xドラむバヌが起動したす。

すごい
どうもありがずう

そしお、それはナヌザヌに察しおかなり透過的な方法で行われたす。JDBCドラむバヌたたは接続プヌルが蚭定されおいる堎合、Hibernate ORMはJDBCを介しおスキヌマの゚クスポヌトを行いたすが、JDBCドラむバヌがない堎合は、スキヌマを゚クスポヌトしたす。 Vert.xドラむバヌが起動したす。

奜奇心が匷いのですが、なぜ最初にJDBCアプロヌチを䜿甚する必芁があるのでしょうか。 vertx䞊で実行する機胜がある堎合は、垞に実行しおみたせんか

無関係な接続がセットアップされおいるずいう理由だけでさたざたな動䜜がトリガヌされるず、ナヌザヌが混乱する可胜性がありたす。 たた、他の接続が実際に同じDBを指しおいるかどうかをどのようにしお知るこずができたすか

奜奇心が匷いのですが、なぜ最初にJDBCアプロヌチを䜿甚する必芁があるのでしょうか。 vertx䞊で実行する機胜がある堎合は、垞に実行しおみたせんか

通垞のHibernateを通垞のJDBCドラむバヌでセットアップしおいる堎合は、それを䜿甚しないのはなぜですか リアクティブスキヌマ゚クスポヌトは意味のあるものではありたせん。 これを機胜させるには、最埌に完党に厄介なjoin()を実行する必芁がありたすが、Vert.xはこれを非垞に䞍快に感じおいたす。

他の接続が本圓に同じDBを指しおいるかどうかをどうやっお知るのですか

同じJDBCURLですか

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