1

使用带注释的连接子类时遇到异常,我不知道如何更正,请帮助。
例外是:org.hibernate.MappingException:未知实体:B
代码:
A 类

@Entity
@Table(name="table_a")
@Inheritance(strategy=InheritanceType.JOINED)   
public class A {
    // uses composite key
    @Id
    @Column(name="sid")
    private String sid;

    @Id
    @Column(name="uid")
    private String uid;

    .....
}


B类

@Entity
@Table(name="table_b")
public class B extends A {
    // inherited sid and uid from A
    @Id
    @Column(name="xid")
    private String xid;

    @Column(name="name")
    private String name;
    ......
}


create table_a(sid varchar, uid varchar);
create table_b(sid varchar, uid varchar, xid varchar, name varchar);


休眠.cfg.xml

<hibernate-configuration>
    <session-factory>
        .....
        <mapping class="A"/>
        <!-- no need to map B here, right?
        <mapping class="B"/>
        -->
        .....
    </session-factory>
</hibernate-configuration>


测试类

public class HibernateTest {
    public static void main(String[] args) throws Exception {
        SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
        Session session = sessionFactory.openSession();
        session.beginTransaction();
        B temp = new B();
        temp.setSid(1);
        temp.setUid(2);
        temp.setXid(3);
        B target = session.get(B.class, temp);
        System.out.println("---------------" + target.getName());
        session.getTransaction().commit();
        session.close();
   }
}


例外:

Exception in thread "main" org.hibernate.MappingException: Unknown entity: B
4

1 回答 1

2

您已经<mapping class="B"/>评论了一个问题,询问是否需要它。你需要它。

于 2011-07-19T03:49:26.500 回答