標準JPA 2を使用して、それぞれのエンティティテーブルの単一フィールドに整数のリストを格納することは可能ですか?
@Entity
@Table(name="tbl_myentities")
public class MyEntity {
@ElementaryCollection
@Column(name="vals") // in table tbl_myentities
private List<Integer> vals;
標準JPA 2を使用して、それぞれのエンティティテーブルの単一フィールドに整数のリストを格納することは可能ですか?
@Entity
@Table(name="tbl_myentities")
public class MyEntity {
@ElementaryCollection
@Column(name="vals") // in table tbl_myentities
private List<Integer> vals;
1 つのフィールドに複数の値を格納することはできません。それらを単一のフィールドに格納する理由は何ですか?
タイプ String のフィールドを使用し、そこにあるすべての整数をコンマ区切りのリストに追加し、ゲッターとセッターで結合/分解する方法があります。
private String vals;
public setVals(int vals[])
{
// this.vals = Iterate vals[] and create a comma separated string
}
public int[] getVals()
{
// vals.split(",") to get a list of Strings, then typecast/parse them to ints before returning
}
@ElementCollection
注釈を使用し@CollectionTable
てマッピングを制御するには、値を格納する別のテーブルが必要です。
@ElementCollection
private Collection<Integer> integers;
要素コレクションの詳細については、http://en.wikibooks.org/wiki/Java_Persistence/ElementCollectionを参照してください。
それは不可能だと思います。整数のリストを格納できるデータベーステーブルに列を作成できないためです。
できることは、整数のリストの代わりに文字列型のフィールドを使用することです-
@Column(name="vals") // in table tbl_myentities
private String vals;
そして、エンティティを保存する前とエンティティを読み取った後に、整数のリストから文字列への変換と手動での変換を行います。