java - Hibernate子类查询: Java. lang.object无法转换为,错误

标签 java hibernate inheritance casting

我有三个 Java 类,A 是 A 的父类,B 和 C 是 A 的子类。我有一个 A 的 Hibernate 映射文件,其中映射了 B & C 使用连接子类。现在,当我尝试查询 C 时,我得到 [Ljava.lang.Object;无法转换为 A。 Hibernate 生成的查询是正确的,但为什么它不允许转换为 A?

我尝试了以下查询,均导致相同的错误。

session.createQuery("from Request as req inner join req.category where req.class=Externalrequest and req.requestId=:id");

session.createQuery("from ExternalRequest as ereq inner join ereq.category where ereq.requestId=:id");

其中Request是父类,ExternalRequest和InternalRequest是子类。

这是我的映射文件的基本结构

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="Request" table="request" schema="public">
    <id name="requestId" type="integer">
        <column name="request_id" />
        <generator class="sequence" >
            <param name="sequence">request_request_id_seq</param>
        </generator>
    </id>


    <many-to-one name="category" column="category"  class="RequestCategory" />


     <joined-subclass name="ExternalRequest" table="external_request">
            <key column="request_id"/>
            .........

     </joined-subclass>

      <joined-subclass name="InternalRequest" table="internal_request">
            <key column="request_id"/>
            .......
     </joined-subclass>
</class>

最佳答案

[Ljava.lang.Object; 是对象数组的字符串表示形式。 我认为发生的情况是您试图将查询结果(即 RequestExternalRequest 数组)分配给类 Request 的变量ExternalRequest

关于java - Hibernate子类查询: Java. lang.object无法转换为,错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25143096/

相关文章:

java - 如何使用 libgdx 在 IntelliJ 中导入通用补间引擎

java - @UniqueConstraint 的 Spring boot/Hibernate 问题

objective-c - 类扩展中属性的可见性和 Objective C 中的继承

java - 通过父类(super class)引用变量访问子类成员

java - Brief : Some game objects move, 有些没有

java - Spring Controller : Adding a response header parameter called Elapsed-Time

java - 如何使用 TwitterObjectFactory.jsonStoreEnabled 获取 JSON 格式的推文?

java - hibernate : An association from the table application_category refers to an unmapped class: allin. beans1.Application

java - Hibernate HQL 带有 Likes 的意外标记

java - 自动生成 key