一旦你看到此组合键,并使用它们,我在代码块后下来的实体,请参考下pseudotable,我需要IdClass共享复合键在数据库的地址实体:JPA - 错误试图映射使用,而不是一个EmbeddedId
地址表:
ADDRESS
-------------------------------
DOCUMENTTYPE INT2 PK
DOCUMENTNR VARCHAR(10) PK
ALIAS VARCHAR(20) PK
FULLADDRESS VARCHAR(100)
...
实体&组合键:
@Embeddable
public class Document implements Serializable {
private DocumentType documentType;
private String documentNr;
...
@Entity
@IdClass(Document.class)
public class Person {
@Id
private DocumentType documentType;
@Id
private String documentNr;
private String fullName;
...
@Embeddable
public class AddressId implements Serializable {
private DocumentType documentType;
private String documentNr;
private String alias;
...
@Entity
@IdClass(AddressId.class)
public class Address {
@Id
@ManyToOne
private Person person;
@Id
private String alias;
private String fullAddress;
...
注意:DocumentType是枚举。
那么,我试图让地址实体的映射,但它不起作用,我不知道为什么。它一直说(EclipseLink),我有名称和类型不匹配的问题。我不明白为什么如果IdClass没有别名属性(当然也没有实体),那么它就像一个魅力,以及与完整的AddressId IdClass(与别名属性),但使用EmbeddedId。我需要的是像我发布的地址实体。
映射错误在哪里?
预先感谢您!
感谢您的回应,但这不是因为枚举类型隐式地继承ORDINAL赋值。 –