5.0 සිට , ඔබට දැන් එම අගයන් කැපවීමකින් සොයාගත හැකිය Enum
: org.hibernate.boot.SchemaAutoTooling
(අගය සමඟ වැඩි දියුණු කරන ලදිNONE
5.2 සිට ).
හෝ ඊටත් වඩා හොඳයි, 5.1 සිට , ඔබට JPA 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();
}