Я работаю над проектом, который использует спящий режим сверток dropwizard, чтобы получить сессионный завод за ниже документы:Как установить значениеNamingStrategy в классе Dropwizard HibernateBundle без xml?
http://www.dropwizard.io/0.7.1/docs/manual/hibernate.html
Проект не использует какие-либо XML и использую только аннотированные классы для конфигурации как и в примере.
public class ExampleConfiguration extends Configuration {
@Valid
@NotNull
@JsonProperty("database")
private DataSourceFactory database = new DataSourceFactory();
public DataSourceFactory getDataSourceFactory() {
return database;
}
}
private final HibernateBundle<ExampleConfiguration> hibernate =
new HibernateBundle<ExampleConfiguration>(
some.class
) {
@Override
public DataSourceFactory getDataSourceFactory(ExampleConfiguration configuration) {
return configuration.getDataSourceFactory();
}
};
Однако, у нас есть случай, когда использование мне нужно предварять среды для имени таблицы в DAO объекты таким образом, что @Table аннотация переопределена.
У меня есть класс, который реализует ImprovedNamingStrategy, согласно ниже документам
http://docs.jboss.org/hibernate/orm/5.0/javadocs/org/hibernate/cfg/ImprovedNamingStrategy.html
Но как я зацепить стратегию именования в мой dropwizard спящего пачке. Я хотел бы быть в состоянии сделать что-то вроде этого ...
hibernateBundle.setNamingStrategy(ImprovedNamingStrategy.Instance)
или
hibernateBundle.addAnnotatedClass(someHibernateNamingPropertyConfig)
Однако, hibernateBundle API не позволяет какой-либо из этого.
Просматривая исходный код HibernateBundle
Вы можете видеть, что он использует "импорт io.dropwizard.Configuration;" в отличие от org.hibernate.cfg, который раскрывает все эти методы. Я пытаюсь избежать крупного рефакторинга, поэтому, если есть «хакерский» способ принудительно установить свойство именования на комплекте, тогда я в порядке с этим.
Любые идеи о том, куда идти отсюда, будут высоко оценены.
Можете ли вы изменить свой вопрос своим ответом или разместить его в качестве ответа? –