JPA数组映射

emt*_*t14 7 java hibernate jpa playframework

如何在JPA中映射双打数组.我有以下代码失败,因为hibernate无法初始化数组.

@Entity
public class YearlyTarget extends GenericModel {

    @Id
    public Integer  year;

    @ElementCollection
    public Double[] values;

    public YearlyTarget(int year) {
        this.year = year;
        this.values = new Double[12];
    }
}
Run Code Online (Sandbox Code Playgroud)

Dat*_*eus 10

JPA没有强制要求将数组保存到单独的表中; 显然JDO确实如此,但之后你选择不使用它.因此,您需要将它们存储为@Lob,或将您的java类型更改为List.


Cod*_*nci 7

使用Object类型,例如ArrayList.例

@ElementCollection
public ArrayList<Double> values;

public YearlyTarget(int year) {
    this.year = year;
    this.values = new ArrayList<Double>(12);
}
Run Code Online (Sandbox Code Playgroud)

  • @emt14 我怀疑 JPA 实现不能像列表或其他集合那样容易地代理数组。 (2认同)