【发布时间】:2018-05-27 11:56:30
【问题描述】:
我有以下代码
interface Loanable {}
abstract class Material {}
@Entity
class Journal extends Material {}
@Entity
class Book extends Material implements Loanable {}
@Entity
class DigitalMedia extends Material implements Loanable {}
@Entity
@Table(name = "Loan")
@Access(value = AccessType.FIELD)
public class Loan {
@Id
@Column(name="Loan_ID",updatable = false, nullable = false)
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@OneToOne (cascade=CascadeType.ALL)
@JoinColumn(name="studentId")
/* Person who makes the loan */
private User user;
//@Column(name="loanable")
@OneToOne (cascade=CascadeType.ALL)
@JoinColumn(name="materialId")
/* Loanble which is loaned */
private Loanable loanable;
}
如代码所示,我正在尝试将Loan 映射到Loanable。一个User 一次可以有一笔贷款。 如何将可借类型对象映射到数据库?我在Book和DigitalMedia搜索了制作抽象类并扩展它的方法,但我不能扩展两个类,因为它们已经扩展了Material。 @Convert 似乎也不适用于接口类型的对象。我正在使用具有 Hibernate 持久性的 JPA。
【问题讨论】:
-
提问时,请发布代码而不是描述您的代码,因为从实际代码中更容易理解问题。还要确保只发布与问题相关的尽可能多的代码,避免发布与问题无关的任何部分。
-
只有部分 JPA 提供者支持接口。听起来您的 JPA 提供商没有
标签: java jpa hibernate-mapping persistence.xml