【发布时间】:2020-08-16 23:33:15
【问题描述】:
在实体映射方面需要帮助。我有 Debtor 实体,它与 Addresses 实体有一对多的映射。 我也有不同的地址类型,债务人应该与每种地址类型进行一对一的映射。 每个地址类型都是地址的子类。在运行测试用例时,我遇到了错误
"为类inquiry.entity.CurrentAddress 提供了错误类型的ID。预期:类java.lang.Integer,得到类 java.lang.String;嵌套异常是 java.lang.IllegalArgumentException:"
谁能帮忙,如何映射实体。
@Entity
@Table(name="debtors")
public class Debtor{
@Id
@Column(name = "id" , length = 127)
private String id;
@OneToOne
@JoinColumn(name = "id", referencedColumnName = "parent_id")
private CurrentAddressStd currAddrStd;
@OneToOne
@JoinColumn(name = "id", referencedColumnName = "parent_id")
private CurrentAddress currAddr;
@OneToMany
@JoinColumn(name = "parent_id")
private List<Addresses> addresses;
}
@Entity
@Table(name="addresses")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(discriminatorType = DiscriminatorType.STRING, name = "type")
public class Addresses{
@Id
@GeneratedValue(strategy= GenerationType.SEQUENCE)
private int id;
@Any(metaColumn = @Column(name = "parent_type"))
@AnyMetaDef(idType = "string", metaType = "string",
metaValues = {
@MetaValue(targetEntity = Contact.class, value = "Contact"),
@MetaValue(targetEntity = Debtors.class, value = "Debtor"),
})
@JoinColumn(name = "parent_id")
public Object parentItem;
}
@Entity
@DiscriminatorValue("CurrAddrStd")
public class CurrentAddressStd extends Addresses{
}
public interface AddressesRepository extends CrudRepository<Addresses,Integer> {
}
【问题讨论】:
-
嗨@dharan,我的回复有帮助还是您仍然收到错误消息?