カスタムキー生成にhibernateのTableGeneratorを使用したい
final SessionImpl session = ((SessionImpl) EntityManagerUtils
.getEntityManager("CORE").getDelegate());
TableGenerator generator = new TableGenerator();
Properties params = new Properties(??????????);
// params.put("identifier_normalizer", ?);
params.put("table_name", "eflow.docs_number_generators");
params.put("value_column_name", "tbl.GENERATOR_VALUE");
params.put("segment_column_name", "tbl.GENERATOR_KEY");
params.put("increment_size", "25");
params.put("segment_value", "2011");
generator.configure(IntegerType.INSTANCE, params, session
.getSessionFactory().getDialect());
Serializable id = generator.generate(session, new Object());
System.out.println(id);
ただし、キー「identifier_normalizer」を持つオブジェクトが欠落しており、このスニペットはnullポインター例外をスローします。このオブジェクトは、ObjectNameNormalizer
dbオブジェクト名を正規化するタイプであり、休止状態のローカルマッピングに格納されます。
hibernateの内部マッピングとその結果としてこのObjectNameNormalizer
オブジェクトにアクセスする方法は?
実際には、取得するのがホットかどうかわからない休止状態のMappingsオブジェクトが必要になるようです。
前もって感謝します