৫.০ থেকে আপনি এখন এই মানগুলি একটি উত্সর্গীকৃত Enum: org.hibernate.boot.SchemaAutoTooling( NONE৫.২ থেকে মান সহ উন্নত ) পেতে পারেন।
বা আরও ভাল, 5.1-এর পরে , আপনি জেপিএ 2 এবং "লিগ্যাসি" হাইবারনেট ডিডিএল ক্রিয়াগুলির সংমিশ্রণটিও ব্যবহার করতে পারেন ।org.hibernate.tool.schema.Action Enum
তবে , আপনি এটি দিয়ে এখনও কোনও DataSourceপ্রোগ্রামালিফিকভাবে কনফিগার করতে পারবেন না । এটির সাথে মিলিত এটি ব্যবহার করা ভাল হবে org.hibernate.cfg.AvailableSettings#HBM2DDL_AUTOতবে বর্তমান কোডটি একটি Stringমান আশা করে (এর থেকে নেওয়া অংশ SessionFactoryBuilderImpl):
this.schemaAutoTooling = SchemaAutoTooling.interpret( (String) configurationSettings.get( AvailableSettings.HBM2DDL_AUTO ) );
... এবং অভ্যন্তরীণ enumউভয় মান org.hibernate.boot.SchemaAutoToolingএবং org.hibernate.tool.schema.Actionপ্রকাশ্যে উন্মুক্ত করা হয় না।
এখানে, একটি নমুনা প্রোগ্রাম্যাটিক DataSourceকনফিগারেশন (আমার স্প্রিং বুট অ্যাপ্লিকেশনগুলির মধ্যে ব্যবহৃত) যা গাম্বিট ধন্যবাদ ব্যবহার করে .name().toLowerCase()তবে এটি কেবল ড্যাশ ছাড়াই মানগুলির সাথে কাজ করে ( create-dropউদাহরণস্বরূপ নয়):
@Bean(name = ENTITY_MANAGER_NAME)
public LocalContainerEntityManagerFactoryBean internalEntityManagerFactory(
EntityManagerFactoryBuilder builder,
@Qualifier(DATA_SOURCE_NAME) DataSource internalDataSource) {
Map<String, Object> properties = new HashMap<>();
properties.put(AvailableSettings.HBM2DDL_AUTO, SchemaAutoTooling.CREATE.name().toLowerCase());
properties.put(AvailableSettings.DIALECT, H2Dialect.class.getName());
return builder
.dataSource(internalDataSource)
.packages(JpaModelsScanEntry.class, Jsr310JpaConverters.class)
.persistenceUnit(PERSISTENCE_UNIT_NAME)
.properties(properties)
.build();
}