-
- props.put("hibernate.dialect", MySQLInnoDBDialect.class.getName());
- setProperty("hibernate.schemaupdate", "true");
+
+ addRequiredInterface(CONFIG);
+ }
+
+ /**
+ * DOCUMENT ME!
+ *
+ * @param aExternalScope DOCUMENT ME!
+ *
+ * @return DOCUMENT ME!
+ */
+ @Override
+ protected Scope doStart(Scope aExternalScope) {
+ ORMappingConfig config = aExternalScope.getInterfaceImplementation(CONFIG
+ .getProvider(), ORMappingConfig.class);
+ setProperty(HIBERNATE_SCHEMAUPDATE_PROP, "" + config.isSchemaUpdate());
+
+ DatabaseType db = config.getType();
+ String dialect = db.handleCases(new DatabaseType.Switch<String>() {
+ @Override
+ public String handleMySqlInnoDb() {
+ return MySQLInnoDBDialect.class.getName();
+ }
+
+ @Override
+ public String handleDerby() {
+ return DerbyDialect.class.getName();
+ }
+ });
+
+ getHibernateProperties().put(HIBERNATE_DIALECT_PROP, dialect);
+
+ return super.doStart(aExternalScope);