查询继承实体的异常

时间:2013-12-28 14:24:51

标签: java hibernate inheritance jpa persistence

在我的数据库中,我有类似的东西:

+---------+
| 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字段,所以如何解决这个问题呢?有没有办法查询所有继承表?

1 个答案:

答案 0 :(得分:0)

我解决了this有趣的维基书。

相关问题