我正在为ORM使用hibernate和annotations.我有所有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;
}
}
Run Code Online (Sandbox Code Playgroud)
我得到MappingException:无法确定类型:Field,at table:chart,for columns:[org.hibernate.mapping.Column(field)]
使用bean而不是接口来获取属性和getter/setter声明解决了这个问题,但我想坚持使用接口.单独使用bean进行属性声明并不能解决问题.
有人能指出我正确的方向吗?