###前提・実現したいこと
開発言語は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に詳しい方がいましたら、お力を貸していただけると助かります。