我的数据库中有一个表,我们称之为ClassA。该表有两列,其中一列是Blob。我需要将此Blob分成不同的列,并且经过大量搜索后发现的建议不起作用。
ClassA具有一个String属性(与该问题无关),另一个具有ClassAID类型,这是它在数据库中的主键。反过来,ClassAID具有三个属性:ClassBID,ClassCID和ClasDID。 ClassBID和ClassCID只有一个String,而ClassDID有一个String和ClassEID,而ClassEID又有一个String。只有ClassA自己保留在表中,我希望其他类中的每个String成为ClassA表中的各个列。
(顺便说一句,我知道这种班级结构有点混乱,但这是针对一个由6人组成的3至3人组成的大学项目的,我们正在尽力而为,请帮忙;-;)
@Entity
@Table (name = "ClassA")
public class ClassA {
@Id
@EmbeddedId
private ClassAID classAId;
}
@Embeddable
public class ClassAID {
@Embedded
private ClassBID classBId;
@Embedded
private ClassCID classCId;
@Embedded
private ClassDID classDId;
}
@Embeddable
public class ClassBID {
private String classBIdString;
}
@Embeddable
public class ClassCID {
private String classCIdString;
}
@Embeddable
public class ClassDID {
private String classDIdString;
@Embedded
private ClassEID classEId;
}
@Embeddable
public class ClassEID {
private String classEIdString;
}
ClassA的表在另一列中显示了我提到的其他属性,而在另一列中显示了ClassAID作为Blob。我需要它来显示该属性,以及ClassBID,ClassCID,ClassDID和ClassEID中的每个单独的String作为ClassA表中的列。
我知道应该使用EmbeddedId,Embeddable和Embedded批注在JPA中创建复合键,但是我一定做错了事,我无法弄清楚它是什么。我感觉由于具有笨拙的嵌入式类链而无法执行此操作,但是如果我可以确认或消除这种感觉,那就太好了。