質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ORM

ORM(オブジェクト関係マッピング)はオブジェクト指向のシステムとリレーショナルデータベースの間でマッピングを行う技術です。

Q&A

1回答

3240閲覧

JOOQを使用して配列型のカラムデータを取得する

garara

総合スコア8

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

ORM

ORM(オブジェクト関係マッピング)はオブジェクト指向のシステムとリレーショナルデータベースの間でマッピングを行う技術です。

0グッド

0クリップ

投稿2017/01/09 04:58

###前提・実現したいこと
開発言語はJava、DBはpostgresql、ORMはJOOQを使用して、配列型のカラムデータを取得しようとしています。(将来的には、あいまい検索もできれば行いたいと思っています。)

###発生している問題・エラーメッセージ
今回初めて、JOOQを使用したため、配列型のカラムデータの取得方法がうまく行うことができませんでした。

通常のpostgresqlの場合、(参照サイト
下記テーブル内容の場合

CREATE TABLE favorites ( username varchar(20), -- ユーザ名 category varchar(20), -- カテゴリ名 items varchar(100)[], -- アイテム名(複数) PRIMARY KEY(username, category) );

抽出のSQL文は

SELECT username, category, items FROM favorites WHERE 'オレンジ' = ANY (items);

となり、結果は

username | category | items ----------+----------+-------------------------- ぱせらん | 果物 | {オレンジ,メロン,りんご} (1 row)

となるのですが、ORMとしてJOOQを使用した場合、うまく実現することができませんでした。

###該当のソースコード
xxxはString型とする

Java

1select().from(FAVORITES).where(FAVORITES.ITEMS.like(xxx)).fetchInto(class.FAVORITES));

likeを使用する場合は上記のように行うとデータ型が配列型となっているせいかうまく検索も行えず検索結果が0となります。またANYとlikeを組み合わせたい場合にはどのようにSQL文をJQQOを使用して作成すればいいのかがわかりません。

どなたかJOOQに詳しい方がいましたら、お力を貸していただけると助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

narita_takashi

2017/01/09 14:55

JOOQを検索しても見つからないのですが名前あってますかね?可能なら公式サイトのURLも貼ってもらえると嬉しいです
guest

回答1

0

詳細なバージョンが記載されていないので正確な回答ではないかも知れませんが、jOOQ|ARRAY and TABLE data types によると、配列で受け取るよう指示します。

ですので、String[] ではないですかね。

投稿2017/01/10 05:27

A-pZ

総合スコア12011

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問