mrz*_*asa 8 java inheritance persistence hibernate single-table-inheritance
我有以下继承层次结构:
Task
|
SpecificTask
|
VerySpecificTask
Run Code Online (Sandbox Code Playgroud)
我想坚持使用单表继承,所以我注释了类:
@Entity
@Table(name="task")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
public class Task
@Entity
public class SpecificTask extends Task
@Entity
public class VerySpecificTask extends SpecificTask
Run Code Online (Sandbox Code Playgroud)
当我尝试保存VerySpecificTask类的对象时,我收到一个错误:
Unable to resolve entity name from Class [com.application.task.VerySpecificTask]
expected instance/subclass of [com.application.task.Task]
Run Code Online (Sandbox Code Playgroud)
我错了什么?是否可以将多级继承映射到单个表?
编辑:这是一个蹩脚的错误,我已经很快解决了,所以我删除它以免弄乱这个问题.
好的,我添加了鉴别器列,现在它可以工作了.更改的代码:
@Entity
@Table(name="task")
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(
name="DTYPE",
discriminatorType=DiscriminatorType.STRING
)
@Entity
public class SpecificTask extends Task
@Entity
public class VerySpecificTask extends SpecificTask
Run Code Online (Sandbox Code Playgroud)
(我添加它只是为了提供一个可接受的答案 - 如果没有对问题的有用评论,我不会解决它.)
| 归档时间: |
|
| 查看次数: |
4098 次 |
| 最近记录: |