如何使用JPA中的嵌入式主键列表获取多个记录

时间:2017-08-13 01:07:49

标签: java hibernate jpa

我有特定的要求,我在表中有2个主键。 我正在使用@EmbeddedId和@Embeddable类来声明这些主键。

现在,我很惊讶于使用JPA一次插入多个主键并从DB中取出。

在JPA中有没有像Embedded ElementCollection这样的方法,我可以使用它来使用主键列表检索多个记录?

为清楚起见,这就是我所拥有的: 表列:col1,col2,col3等。 这里col1和col2是主键,两者都需要接受列表中的值,还需要返回多个列表,col3和其他列可以为所有列提供相同的值。

考虑我有类TableA和主要嵌入类TablePK ..

@Entity
@Table(name = "TABLE_A")
public class TableA implements Serializable {
@EmbeddedId

    private TablePK primaryKey; 
    private String colC;

    @AttributeOverrides({
            @AttributeOverride(name = "colA", column = @Column(name = "FUND_ID")),
            @AttributeOverride(name = "colB", column = @Column(name = "CNTRY_CDE"))
    })
    public TablePK getPrimaryKey() {
        return primaryKey;
    }
    public void setPrimaryKey(TablePK primaryKey) {
        this.primaryKey = primaryKey;
    }

    @Column(name="COL_C")
    public String getColC(){
        return colC;
    }
    public void setColC(String colC) {
        this.colC=colC;
    }
}


@Embeddable
public class TablePK implements Serializable
{
    private List<String> colA;
    private List<String> colB;

    public List<String> getColA(){
        return colA;
    }
    public void setColA(List<String> colA) {
        this.colA=colA;
    }

    public List<String> getColB(){
        return colB;
    }
    public void setColB(List<String> colB) {
        this.colB=colB;
    }   
}

像ElementCollection这样的东西可以在这里插入多个主键记录,也可以检索多个记录。 我知道如果我们有主表和辅助表它会工作,但在这种情况下它是一个表,也在主键上。

0 个答案:

没有答案