2016-12-16 6 views
1

私はPostgreSQLを使用しています。私のテーブルのフィールドのうちの1つは、配列です:myBatisのJAVAオブジェクトとマッピングするときにinteger []をList <Integer>に直接変換する方法

"day_of_month" int[] DEFAULT NULL 

しかし、この表のための私のドメインオブジェクトはList<Integer>です。私は:List<Integer>タイプのPOJOの属性の属性値をMyBAtisクエリAPIを使って取得したいと思います。

これを行うための自動方法はありますか?Postgresqlによって何かが提供されていますか?List<Integer>に直接変換して、余分な処理を避けたいですか?

答えて

1

カスタムTypeHandler、an example hereを使用する必要があります。

あなたはstatement.getArray(i).getArray()は[]オブジェクトを返します、のgetResult方法で特に興味を持っています。 List(またはあなたが欲しいもの)に入れてください:Arrays.asList()そしてそれを返してください。 ところで、NPEを避けるためにヌルチェックを忘れないでください。もちろん

、ええ...これは選択肢の一つである...しかし、私はPostgreSQLのクエリ自体で何かをしたかった属性typeHandler="type.handler.full.qualified.name"

+0

であなたのこのresultMapでそれを参照します。 – JuilyT

+0

ええ、それはあなたが尋ねたものです。しかし、私は何が目的なのだろうか? "キャスト"のような構文を使っているようですが、入力にしか使えません。 あなたが望むのは、PostgresがJava Listであることを「知る」ことですが、それはなぜですか? jdbcドライバは結果セットを「シンプルな」Javaタイプとして取得するためのresultSetを提供します。 Mybatisは、Listなどのより複雑な構造にマップするためのもう1つの層です。 – blackwizard

関連する問題