Неизвестная проблема сущности для объединенного подкласса при использовании аннотации - PullRequest
1 голос
/ 19 июля 2011

Я встретил исключение при использовании аннотированного объединенного подкласса, не знаю, как это исправить, пожалуйста, помогите.
Исключение: org.hibernate.MappingException: неизвестный объект: B
Код:
Класс А

@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);


hibernate.cfg.xml

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


TestClass

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

1 Ответ

2 голосов
/ 19 июля 2011

Вы <mapping class="B"/> прокомментировали вопрос, спрашивающий, нужно ли это. Тебе это нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...