ORA-00942:表或视图不存在任何 hibernate.ddl-auto

问题描述 投票:0回答:1

我正在尝试使用注释运行 Hibernate。但是调用

buildSessionFactory()
后不会生成表。我想这是我的代码:

public class HibernateApp {
    public static void main(String[] args) {
        SessionFactory sessionFactory = buildSessionFactory();

        Session session = sessionFactory.openSession();
        Transaction transaction = session.beginTransaction();
        
        TestEntity entity = new TestEntity();
        session.save(entity);

        transaction.commit();
        session.close();
        sessionFactory.close();
    }

    private static SessionFactory buildSessionFactory() {
        try {
            AnnotationConfiguration configuration = new AnnotationConfiguration();
            Properties properties = PropertiesReader.get();
            configuration.setProperties(properties);
            configuration.addAnnotatedClass(app.model.TestEntity.class);
            configuration.buildMappings();
            return configuration.buildSessionFactory();
        } catch (Exception e) {
            e.printStackTrace();
            throw new ExceptionInInitializerError(e);
        }
    }
}

我的房产:

hibernate.connection.driver_class=oracle.jdbc.driver.OracleDriver
hibernate.dialect=org.hibernate.dialect.Oracle10gDialect
hibernate.ddl-auto=update
hibernate.connection.url=jdbc:oracle:thin:@10.0.0.181:1521:center
hibernate.connection.username=username
hibernate.connection.password=password
hibernate.connection.autocommit=true

编辑:
值得一提的是,我尝试使用 hibernate 构建这个项目,但不是 Spring。我猜想有这个问题,因为大多数教程都暗示将 Hibernate 与 Spring 结合使用,并且依赖项存在一些重叠。

java sql hibernate orm hibernate-mapping
1个回答
0
投票

当我使用

hibernate-core
代替
hibernate-entitymanager
依赖时,问题就解决了。然后我只使用 Configuration 而不是 AnnotationConfiguration。对于第一个依赖项,我找不到
addAnnotatedClass
方法。

然后Hibernate调用后开始创建表

SessionFactory sessionFactory = new Configuration()
                    .addAnnotatedClass(app.model.TestEntity.class)
                    .buildSessionFactory();
© www.soinside.com 2019 - 2024. All rights reserved.