Tapas Bose
Tapas Bose

Reputation: 29816

org.hibernate.cfg.Configuration adding packages where Annotated classes resides

I am creating database tables by the following code:

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 ===========================");
}

Here I have specified the Annotated classes names by configuration.addAnnotatedClass method. If I have 50 classes, then it will be really messy.

Is there any way to specify packages names for scanning for Annotated classes?

Upvotes: 3

Views: 4546

Answers (2)

Maddy
Maddy

Reputation: 923

You can use Reflections to load all the Entities which are annotated as @Entity and add them to hibernate configuration. Chech the link fir a sample code Hibernate 4 Annotation Configuration

Maddy

Upvotes: 3

Ryan Stewart
Ryan Stewart

Reputation: 128919

I'm not familiar with many of the changes in Hibernate 4, but there was no way to do this in Hibernate 3. I recommend using Spring's excellent Hibernate support, which lets you scan packages for entities, like you're asking for, and can manage a lot of other stuff for you, too, if you run your app in a Spring container.

Upvotes: 3

Related Questions