[Seasar-user:15818] Re: S2Dao における entity クラスの配列プロパティ

あきら [E-MAIL ADDRESS DELETED]
2008年 9月 24日 (水) 11:05:03 JST


あきらです

気になったので調べてみました

> 単純なデータ型(int double String...)だとうまくいきますが、整数型配列型(つまり
> 配列型,int[],floa[]...)でフィールドを定義するとエラーとなります。

PostgreSQLの配列ですね。。。
いまいちマイナーなのでこだわりがなければ他のテーブルに正規化?したほうが
幸せになれることが多いようです

有効に利用できる場合も多いんですけれどね

> 過去ログも参照しましたが未だ解決していません。
> どなたか、ご助言いただけると助かります。

intの配列であれ、戻り値は {1,2,4}などの文字列で帰ってきます
S2dao的には文字列で処理すれば問題ないようでした

それだとあんまりなので、無理やり分割したのがしたのサンプル
です。

データを取り出すところしか試していないですが、こんな感じ
ではどうでしょうか?

文字列の配列だと、分割のところがかなーーーり面倒になり
そうですが。。。

よく見たら setData2 がない。。。
コンセプトモデルってことで、細かい検証してから使って
もらえればと思います。

もう少ししたらきっと、オフィシャルの人から回答が入る
んじゃないかな?

---------------------------------------------------------------------------------------

package pgsql.entity;

public class Test {

	private Integer id;
	private String data;
	public Integer[] data2;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getData() {
		return data;
	}

	public void setData(String data) {
		this.data = data;

		String tempData = data.replace("{", "").replace("}", "");
		String[] strs = tempData.split(",");
		this.data2 = new Integer[ strs.length ];
		for( int i = 0 ; i < strs.length ; i++ ) {
			this.data2[i] = Integer.parseInt(strs[i]);
		}
	}

	public Integer[] getData2() {
		return data2;
	}
}

---------------------------------------------------------------------------------------

あきら


Seasar-user メーリングリストの案内