15 Ekim 2018 Pazartesi

SchemaExport Sınıfı

Giriş
Açıklaması şöyle.
SchemaExport (aka hbm2ddl) is tool that generates database schema (whole, not partial) from Hibernate mappings. SchemaExport needs to aware of dialect, but it does not consult existing database. Generated DDL statements can then be executed and/or saved to file and/or printer to standard out.

SchemaUpdate updates existing schema. To some extent it figures out which DDL statement should be executed to make existing database match to modified Hibernate mappings.
Bu sınıfın  create(),drop() metodu kullanılır.

constructor
Şöyle yaparız.
 SchemaExport export = new SchemaExport();
constructor - Configuration
Bu metod Hibernate 5 ile silindi. Eski kodlarda şöyle yaparız.
Configuration configuration = ...;
// this doesn't compile
SchemaExport schemaExport = new SchemaExport(configuration);
create metodu
Örnek
Şöyle yaparız.
new SchemaExport().create( EnumSet.of( TargetType.DATABASE ), metadata() );
Örnek
Şöyle yaparız.
def metadata = new MetadataSources(new StandardServiceRegistryBuilder().build())
    .addAnnotatedClass(DummyEntity)
    .buildMetadata()
def schemaExport = new SchemaExport()
schemaExport.create(EnumSet.of(TargetType.DATABASE), metadata)
execute meodu
Eskiden bu metod şöyle çağrılırdı. true,false parametreleri okunaksızdı.
export.execute(false, true, false, true);
Şimdi ilk parametre hedefin ne olduğunu belirtir. TargetType.DATABASE veya TargetType.SCRIPT veya TargetType.STDOUT olabilir.

İknci parametre Action yani yapılacak işlemi belirtir. Action.NONE (anlamsız) veya Action.CREATE (bomboş veritabanında işe yarar), Action.DROP (vertabanının temizler), Action.BOTH (veritabanını baştan kurar olabilir).

Üçüncü parametre Metadata tablolar ve sütunları hakkında bilgi içerir.

setDelimeter metodu
Şöyle yaparız.
export.setDelimiter(";");
setFormat metodu
Şöyle yaparız.
export.setFormat(true);
setOutputFile metodu
Şöyle yaparız.
String filename = "ddl.sql";
export.setOutputFile(filename);


Hiç yorum yok:

Yorum Gönder