問題タブ [jooq]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
3244 参照

hibernate - ResultSetのオブジェクトをHibernateエンティティBeanに変換する方法

私はプロジェクトを持っています。このプロジェクトの開始時に、永続性にJDBCではなくHibernateを選択しましたが、Hibernateがこのアプリケーションのすべてのケースに適用できるわけではないことがわかったため、Hibernateが永続化できないこれらのケースではJDBCを使用する必要があります。申請する。最後に、JDBCの代わりにjooqを選択します。したがって、このアプリケーションには2種類の永続性テクノロジー、つまりHibernate&Jooqがあります。ここで、jooqによって作成されたResultSetをHibernateEntityBeansに変換します。Hibernateに関するリソースを検索しましたが、何も見つかりませんでした。HibernateにはそのためのAPIがないようです。

だから、私はいくつかの質問があります!

  1. Hibernateの現在のコンテキストを取得するにはどうすればよいですか?
  2. このコンテキスト(質問1で説明)を使用して、ResultSetのオブジェクトをHibernate Entity Beanに変換するにはどうすればよいですか?

皆さんありがとう。

0 投票する
1 に答える
1574 参照

java - Mysql ストリーミングの結果セットと jOOQ fetchLazy

通常、Mysql を使用して大きな結果セットをクエリする場合は、次のように記述します (この回答から取得):

現在、jOOQ 2.0.5 を使用していますが、同じ結果が得られません。

fetchLazy運が悪かったので呼び出してみましたが、結果セット全体がメモリにロードされます。

回避策として、を使用してSQLクエリを取得し、それを実行するquery.getSQL()のに適したものを作成できます。Statement

jOOQ を使用して結果セットをストリームする別の方法はありますか?

0 投票する
2 に答える
2735 参照

java - jooq startup:クラスを生成するコマンドライン

MacOSで使用するためにこのコマンドラインを変更するのを手伝ってもらえますか?jarファイルはデスクトップにあります

java -classpath jooq-2.0.0.jar; jooq-meta-2.0.0.jar;jooq-codegen-2.0.0.jar;mysql-connector-java-5.1.18-bin.jar;。org.jooq.util.GenerationTool /guestbook.xml

ありがとうございました。F。


アップデート:

わかりました、これは完全な行と私が得たエラーです。リストされているすべてのjarファイルがフォルダーにあります。

java -classpath〜/ Desktop / JOOQ / jooq-2.1.0.jar:〜/ Desktop / JOOQ / jooq- meta-2.1.0.jar:〜/ Desktop / JOOQ / jooq-codegen-2.1.0.jar:〜 /Desktop/JOOQ/mysql-connector-java-5.1.15-bin.jar:。org.jooq.util.GenerationTool /bookstore.xml

スレッド「main」の例外java.lang.NoClassDefFoundError:org / jooq / util / GenerationTool原因:java.lang.ClassNotFoundException:org.jooq.util.GenerationTool at java.net.URLClassLoader $ 1.run(URLClassLoader.java:202 )at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:190)at java.lang.ClassLoader.loadClass(ClassLoader.java:306)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)at java.lang.ClassLoader.loadClass(ClassLoader.java:247)


更新2

パスを変更して〜/を削除すると、次のようになります。

java -classpath /Users/fabio/Desktop/JOOQ/jooq-2.1.0.jar:/Users/fabio/Desktop/JOOQ/jooq-meta-2.1.0.jar:/Users/fabio/Desktop/JOOQ/jooq- codegen-2.1.0.jar:/Users/fabio/Desktop/JOOQ/mysql-connector-java-5.1.15-bin.jar org.jooq.util.GenerationTool /Users/fabio/Desktop/JOOQ/bookstore.xml

別のエラーが発生しました:

2012年4月1日17:19:52org.jooq.tools.JooqLoggerエラー重大:/Users/fabio/Desktop/JOOQ/bookstore.xmlが見つかりません2012年4月1日17:19:52org.jooq.tools。 JooqLoggerエラー重大:-----------
2012年4月1日17:19:52org.jooq.tools.JooqLoggerエラー重大:クラスパス上にあり、クラスパスの場所として修飾されていることを確認してください。2012年4月1日17:19:52org.jooq.tools.JooqLoggerエラー重大:現在の作業ディレクトリにある場合は、パスに「/」を追加してみてください2012年4月1日17:19:52 org .jooq.tools.JooqLoggerエラー重大:使用法:GenerationTool

0 投票する
1 に答える
1361 参照

java - Jooq - 重複を無視

現在、プロジェクトに Jooq を使用していますが、挿入時に重複キーを無視する方法が必要です。

テーブルに書き込みたいオブジェクトの配列がありますが、それらが既に存在する場合は、START_TS と EVENT_TYPE の複合一意インデックスによって決定され、挿入がサイレントに失敗するようにします。

私のコードは次のようになります。

このようなソリューションが理想的です: https://stackoverflow.com/a/4920619/416338

次のようなものを追加する必要があると思います:

しかし、何を追加しても、重複でエラーが発生するようです。

0 投票する
2 に答える
645 参照

java - ORM POJO ドメイン モデル クラスが多すぎると、Java PermGen Space にどのような影響がありますか? 利用可能な指標はありますか?

Hibernate などのように JPA/ORM を使用する場合、Java Bean / POJO を定義して、それぞれの RDBMS テーブルにマップされるエンティティを表すのが一般的です。しかし、私が開発しようとしているプラ​​ットフォームでは、200,000 のそのようなエンティティをサポートする必要があります。標準の Spring MVC + Hibernate モデルを使用する必要がある場合、20 万のモデル POJO、20 万の DAO クラス、およびビューで表示可能な形式のデータを含む別の 20 万程度の JavaBean を作成することになる可能性があります。これは、Spring、Hibernate、およびその他の多くのライブラリで必要とされるクラスに加えて、約 600K の Java クラスに相当します。各 POJO モデル クラスに 10 個の String インスタンス変数と、それに対応する getter/setter があるとします。ここで、これらすべてのクラスをロードするために必要な PermGen スペースの量を知りたいと思います。

PermGen スペースのオーバーヘッドを見つける最良の方法は何ですか? クレイジーなアイデアの 1 つは、これらの 200K クラスを生成し、それらをロードし (ただし、それらのインスタンスを作成しないでください)、プロファイラーを実行して「インスタンスのないクラス」メトリックを識別し、permgen サイズを取得する方法をプログラムを作成することです。

実際、フィールド対値マップの java.util.Map だけで必要なことを実行できる、より単純なソリューションも探しています。ここで、フィールドには、RDBMS テーブル/列マッピングに関するメタデータが含まれ、JDBC CRUD ステートメントを生成します (新しいクラスのオーバーヘッドがないJOOQ.org )。

目標は、リフレクションをあまり使用せずにショーを実行し、データを運ぶだけのクラスをロードしすぎることです!!

この問題に関するヘルプは本当に感謝しています。

0 投票する
1 に答える
9541 参照

java - jooq Field<> を名前でインスタンス化する

jOOQ を使用して、一般的なコードで SQL クエリを作成しようとしています。jOOQ を使用してこれらのクエリを実行したり、結果を調べたりすることに興味はありません。また、このコードは汎用的であるため、jOOQ のコード生成は使用できません。

私はこれを理解することができました:

しかし、Factory.field() と from() は、実際のテーブルやフィールド名ではなく一般的な SQL を使用するため、(RenderNameStyle.QUOTED を使用している場合でも) 引用符がなく、SQL インジェクションに対する保護もありません。

それらの名前が何であるかを知っているフィールドまたはテーブルを作成する方法はありますか? 理想的には、jOOQ が "sometable"."somefield" 文字列を作成して、その名前とその親テーブルの両方で Field を指定できます。

0 投票する
1 に答える
1943 参照

java - jOOQコードジェネレーターとMavenでカスタム戦略を使用するにはどうすればよいですか?

jOOQでは、 jOOQコードジェネレーターとMavenおよびカスタムジェネレーター戦略を組み合わせて使用​​したい場合があります。これはそのように行うことができるように見えます(無関係な部分を除外します):

上記の構成は問題を示しています。jOOQのコードジェネレーターは、ライフサイクルのコンパイル目標の前に行われるMavenライフサイクルの生成目標にフックします。ただし、コード生成には、コンパイル済みのカスタム戦略クラスが必要です。そうでない場合は、を取得しClassNotFoundExceptionます。これはMavenでどのように解決できますか?generate目標を実行する前に単一のクラスをコンパイルできますか?

0 投票する
1 に答える
934 参照

mysql - 既存のクエリから count() クエリを作成する

編集: jOOQ のバージョン 1.6.8 を使用します。新しいバージョンではこれが機能するはずです(回答を参照)

Jooqページング、ソートなどでデータのフェッチを処理するために使用するJava Webアプリケーションのグリッドモデルを作成しています...

最初に select を作成し、factory.select(...)これ ( SelectConditionStep) をパラメーターとして gridmodel に渡します。ここで、必要なベースのパラメーターを追加.limit().orderBy()ます。

しかし、私の問題は、ページの合計を計算するために、結果の合計数 (1 ページだけでなく) も知る必要があることです。だから私の質問は、与えられたからカウントクエリを作成することが何らかの方法で可能かどうかSelectConditionStepです。

これをカウントクエリのサブクエリとしてラップすることを考えました。何かのようなもの:

(アイデアを示すためだけに、機能しません)

MySQL では、次のようにします。

私が持っている現在のコード:

0 投票する
1 に答える
2668 参照

java - Jooqを使用して、大文字と小文字を区別しない列を照会するにはどうすればよいですか?

私はPostgreSQLでjOOQを使用していますが、私の列では大文字と小文字が区別されることに気づきました。jOOQを使用して、大文字と小文字の区別を無視して、列をクエリする正しい方法が見つかりませんでした。ここを見ると:jOOQ TableFieldメソッド、あることがわかりequalIgnoreCaseます。しかし、jooqクラス自体には、そのメソッドはありません。

私がここで何を間違えたのか誰か知っていますか?

0 投票する
2 に答える
10805 参照

java - jOOQ が実行する SQL ステートメントを確認するにはどうすればよいでしょうか?

jOOQ を使用して、テーブルとの間でデータのクエリ/挿入/更新を行います。

JOOQ が実行する SQL ステートメントを確認する方法はありますか?