在我的数据库中,我有类似的东西:
+---------+
| answer |
+---------+ ----------------------->--+--------------+
| id +------) | answer_type_b|
---->-+--------------+ +--------------+
... | answer_type_a| | id |
+--------------+ | field_b |
| id | | ... |
| field_a |
| ... |
在我的answer
表中,我有共同的信息,然后我有两个与父表相关的继承表,并且具有不同的特定字段。
我使用JPA 2 + Hibernate 4.2.6在我的应用程序中创建了模型:
@Entity
public abstract class Answer {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
// ...
}
@Entity
public class AnswerA extends Answer{
@Column(name = "field_a")
private String fieldA;
// ...
}
@Entity
public class AnswerB extends Answer{
@Column(name = "field_b")
private String fieldB;
// ...
}
现在,当我尝试查询所有Answer
个实体时,我希望得到一个带有 ALL 的集合,答案为A类和B类,而不是我得到一个例外:
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'answer0_.field_a' in 'field list'
我认为这是因为父表中没有field_a
字段,所以如何解决这个问题呢?有没有办法查询所有继承表?