問題タブ [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.
java - 制限とオフセットに関する jooq の問題
私は jooq を spring と統合し、データベース (MySQL) へのすべてのタイプのクエリに対して、spring の JDBC テンプレートを使用しています。ここでは jooq ライブラリを使用して、jdbc テンプレートに渡す SQL クエリを生成します。
クエリに制限やオフセットを追加するまで、クエリの残りの部分は正常に機能しますが。
次のようにクエリを生成しています。
次のようにエラーが発生します。
org.springframework.jdbc.BadSqlGrammarException: StatementCallback; 悪い SQL 文法 [テーブル t から table_name を選択 (t.table_schema LIKE 'test') limit ? オフセット?]; ネストされた例外は com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException です: SQL 構文にエラーがあります。near '? を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。オフセット?' 1行目
limit および offset メソッドに渡された値がクエリに追加されないことは明らかです。
ドキュメントを検索しましたが、これを達成する他の方法は見つかりませんでした。
oracle - JOOQ による Oracle DATE 列と java.sql.timestamp の比較
jooq を使用して Oracle のクエリを作成しています。日付以外はすべて正常に機能します。
次の出力が得られます。
JOOQ は、lessThan(Object) で Object の型をチェックして、適切な変換ができるかどうかを判断すると思っていましたが、この場合は Object.toString() を実行するだけのようです。また、MySQL の JOOQ を介した日付クエリで問題が発生したことは一度もありません (これは少し前のことですが)。私は何を間違っていますか?
java - クロス プラットフォームの方法で Mysql データベース スキーマを維持するためのベスト プラクティスは何ですか?
単一の Mysql データベースを共有する 2 つのソフトウェア スタック、Ruby on Rails と Java があります。Jooq Java データベース抽象化レイヤーを使用しています。これは、既存のデータベース スキーマを読み取り、コードを生成することによって機能します。
スキーマの変更を追跡するために Rails の移行に依存してきましたが、Java 開発者はこれに慣れておらず、Rails 開発者は何度も問題から抜け出さなければなりませんでした。また、MySql Workbench などのツールを使用してスキーマを直接変更する場合は数秒かかるのに対し、スキーマの変更には 5 ~ 10 分かかることがあります。
Rails に結び付けられていない DB スキーマを変更するためのソリューションがあれば望ましいのですが、適切なアプローチを推奨できる人はいますか?
sql - jOOQの列サイズ
を使用ResultSet
すると、を使用ResultSetMetaData
してデータベース列のサイズを文字数(たとえば、15の場合varchar(15)
)で取得できますmetaData.getColumnDisplaySize(index)
。このサイズを使用して取得できる方法はありますjOOQ
か?
ResultSet
私はUDTに問題があり、データベースへのアクセスにすでに使用していjOOQ
ます(UDTでうまく機能します)ので、はいの場合は完璧です
java - JOOQ クエリを動的に作成する
パラメータのセットに基づいて動的に JOOQ SELECT クエリを作成する必要があります。動的に追加する方法がわかりません。助けてください
前もって感謝します。
java - 結合付きのクエリを使用して、jOOQの1つのテーブルからのみ選択するにはどうすればよいですか?
jOOQに次のクエリがあります。
このクエリは、PERSONとENDUSERのすべての列を含むレコードを返しますが、PERSONの列のみが必要です(そのため、配置し、配置.from(PERSON)
しません.from(PERSON, ENDUSER)
)。それほど重要ではないことはわかっていますが、不要なフィールドが返されることは望ましくありません。
java - スキーマ更新後のjOOQ生成クラスのランタイム検証?
ビルド プロセス中に を使用してorg.jooq.util.DefaultGenerator
、データベース スキーマを表す jOOQ クラスを生成します。
アプリケーションが実行されている間、スキーマはアプリケーションに認識されずに変更されることが予想されます。このような変更は、既に生成されたコードと互換性がある場合と互換性がない場合があります。
生成されたコードが特定のスキーマに対してまだ有効かどうかを実行時に検出するにはどうすればよいですか?
私は次のようなものを探していますboolean stillValid = new SchemaValidator(existingGeneratedCodePath, jdbcUrl, jdbcProps).validate();
java - jOOQは文字列をブール値に変換します
「char(1)」のように定義されたいくつかの列 (MD5、FLAGCONFIRMED、FLAGCHANGEPASSWORD) を持つテーブルが MySQL にあり、可能な値は 0 と 1 のみです。コード生成で jOOQ がこれらをブール値に変換するようにします。
コンバーターを作成しました:
次に、pom でコンバーターを構成しました (ソースの生成に maven を使用しています)。
コードは正常に生成されますが、型は変換されず、型は String のままです。
どうすれば機能しますか?
編集:jOOQ 2.6.1を使用しています
java - JOOQでレコードをテーブルレコードに変換するには?
JOOQ のレコードの結果セットをテーブル レコードのリストに変換する必要があります。そうする方法はありますか?
java - JooqでResultSetとRecordを初期化して作成する方法は?
結果セットとレコードをダミーデータでモックする必要があるため、いくつかの単体テストを作成する必要があります。それらを初期化してインスタンス化する方法がわかりません。助けてください
前もって感謝します。