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 に答える