৫.০ থেকে আপনি এখন এই মানগুলি একটি উত্সর্গীকৃত 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();
}