3

我正在通过以下代码创建数据库表:

public void createSchema() {
    Configuration configuration = new Configuration();
    configuration.setProperty("hibernate.connection.driver_class", driverClassName);
    configuration.setProperty("hibernate.connection.url", url);
    configuration.setProperty("hibernate.connection.username", username);
    configuration.setProperty("hibernate.connection.password", password);
    configuration.setProperty("hibernate.dialect", hibernateDialect);

    configuration.addAnnotatedClass(Base.class);
    configuration.addAnnotatedClass(User.class);
    logger.info("begin database schema creation =========================");
    new SchemaUpdate(configuration).execute(true, true);
    logger.info("end database schema creation ===========================");
}

在这里,我按configuration.addAnnotatedClass方法指定了带注释的类名称。如果我有 50 节课,那真的会很乱。

有没有办法指定包名称以扫描带注释的类?

4

2 回答 2

3

您可以使用反射加载所有注释为 @Entity 的实体并将它们添加到休眠配置。检查链接以获取示例代码 Hibernate 4 Annotation Configuration

麦迪

于 2012-10-06T18:13:18.593 回答
3

我不熟悉 Hibernate 4 中的许多更改,但在 Hibernate 3 中没有办法做到这一点。我建议使用Spring 出色的 Hibernate 支持,它可以让你扫描包中的实体,就像你要求的那样,并且如果你在 Spring 容器中运行你的应用程序,它也可以为你管理很多其他的东西。

于 2012-05-12T14:54:49.350 回答