我正在为 ORM 使用休眠和注释。我有所有 bean 的接口,并且我使用 targetEntity 来建立关系:hibernate 无法派生类型,因为 getter 返回的是接口而不是 bean。
我得到嵌入式 bean 的 MappingException(无法确定类型)。
@Entity(name="FieldBean")
public class FieldBean implements Field {
...
}
@Embeddable
public class FacetBean implements Facet {
...
@ManyToOne(targetEntity = FieldBean.class)
@JoinColumn(name = "field_id")
public Field getField() {
return field;
}
}
@Entity(name = "Chart")
public class ChartBean implements Chart {
@Embedded
@AssociationOverride(
name = "field",
joinColumns = @JoinColumn(name = "category_facet_field_id")
)
public Facet getCategoryFacet() {
return categoryFacet;
}
}
我得到 MappingException:无法确定类型:字段,表:图表,列:[org.hibernate.mapping.Column(field)]
使用 bean 而不是接口进行属性和 getter/setter 声明可以解决问题,但我想坚持使用接口。单独使用 bean 进行属性声明并不能解决问题。
谁能指出我正确的方向?