Hibernate configuration can be passed in multiple ways: programmatically via Configuration.setProperties() with a Properties object, declaratively via hibernate.properties file in the classpath root, or as JVM system properties using -D flags. All three approaches are valid.