我有特定的要求,我在表中有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这样的东西可以在这里插入多个主键记录,也可以检索多个记录。 我知道如果我们有主表和辅助表它会工作,但在这种情况下它是一个表,也在主键上。