抽象类作为hibernate中的成员

时间:2015-04-28 16:10:51

标签: hibernate abstract-class member

我试图使用hibernate在具体类中保存抽象类的成员:

Concete类论坛:

public class CForum extends AForum {
@OneToOne (cascade=CascadeType.ALL,fetch=FetchType.EAGER)
private APolicy _policy; // abstract class member

Apolicy定义如下:

@Entity
@Table(name="POLICIES")
public abstract class APolicy {

    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    protected int id;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }   
}

APolicy有几个扩展它的具体类。 问题是如果我尝试从数据库加载我发现以下错误:

    Error performing load command : org.hibernate.InstantiationException: Cannot instantiate abstract class or interface:  : policy.APolicy

如果我在论坛中更改_policy的类型以保存具体的Policy类,那么我可以正确加载,但是我失去了抽象,这允许我更改策略(更改论坛之间的实现)。

有没有办法保持抽象并仍能正确加载数据库?

0 个答案:

没有答案