我有一个像这样的简单实体类
@Entity
public class Car{
@Column protected String name;
}
一切都很好,但现在我想使用这个实体的子类或匿名类。
public class TestCar extends Car{
TestCar(){ this.name = "Test"; }
}
或
void foo(){
Car c = new Car(){
{ this.name = "Lone"; }
};
// ...
}
这些子类仅用于实例化,可以通过hibernate完全忽略。
但是当我尝试保存实体时,我得到一个"未知实体" -Exception。
有没有办法让hibernate忽略这样的子类?
编辑:如果我们能找到问题的答案,那就太好了。讨论所有其他(众所周知的)模式并没有帮助(至少对我而言)。您应该看到这只是一个非常简单的示例来澄清问题。 (可能你应该忽略用例)
刚发现这可能重复(也没有解决方案):How to persist an entity from an non-entity subclass in Hibernate
答案 0 :(得分:0)
它不起作用。
恕我直言,你应该重新考虑你的设计。真的是TestCar还是匿名Car类是Car的子类型?我认为您使用错误的工具来创建实例。您可以使用Builder模式。