1

我正在尝试创建一个 SessionFactory bean。我的代码如下:

@Bean
public SessionFactory sessionFactory() {
    return new LocalSessionFactoryBuilder(dataSource()).scanPackages("com.package").buildSessionFactory();
}

@Bean
public DataSource dataSource() {
    BasicDataSource dataSource = new BasicDataSource();
    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    dataSource.setUrl("jdbc:mysql://localhost:3306/csu_library");
    dataSource.setUsername("csulibrary");
    dataSource.setPassword("csulibrary");
    dataSource.setMaxActive(10);
    dataSource.setMaxIdle(5);
    dataSource.setInitialSize(5);

    return dataSource;
}

抛出的异常如下:

Caused by: java.lang.ClassCastException: org.hibernate.mapping.SingleTableSubclass cannot be cast to org.hibernate.mapping.RootClass
4

1 回答 1

5

当您在 POJO 超类中使用继承时,应该将 uniqueId 作为主键,如果您不这样做,子类只能将其用作外键,我觉得您会陷入此异常。尝试使子类主键不同,并在超类和子类之间提供外键连接。检查这是一个解决的好例子: Spring 3.1 Hibernate 4 exception for Inheritance [cannot be cast to org.hibernate.mapping.RootClass]

于 2013-03-20T07:22:01.247 回答