In Hibernate 4 - Feder 4 Setup es möglich war, DDL zu generieren mit SchemaExport
Objekt:winter 5 und Feder - DDL generieren mit Schema
LocalSessionFactoryBean sfb = (LocalSessionFactoryBean) context.getBean("&sessionFactory");
SchemaExport schema = new SchemaExport(sfb.getConfiguration());
Aber winter 5 SchemaExport(Configuration configuration)
Konstruktor mit SchemaExport(MetadataImplementator metadataImplementator)
ersetzt.
MetadataImplementator ist nicht ohne weiteres verfügbar auf
org.springframework.orm.hibernate5.LocalSessionFactoryBean
oder org.springframework.orm.hibernate5.LocalSessionFactoryBuilder
ich es so gehackt:
MetadataSources metadataSources = (MetadataSources) FieldUtils.readField(configuration, "metadataSources", true);
Metadata metadata = metadataSources
.getMetadataBuilder(configuration.getStandardServiceRegistryBuilder().build())
.applyPhysicalNamingStrategy(new MyPhysicialNamingStrategy())
.applyImplicitNamingStrategy(ImplicitNamingStrategyJpaCompliantImpl.INSTANCE)
.build();
MetadataImplementor metadataImpl = (MetadataImplementor) metadata;
SchemaExport schema = new SchemaExport(metadataImplementor);
Aber es wäre schön, (eine bessere Möglichkeit zu haben, und auch, Validator Anmerkungen @NotNull, @Size) werden nicht für die DDL-Generierung verwendet und ich weiß nicht, ob es sich um einen Fehler in Hibernate 5 oder diesem Setup handelt.
Ich verwende Hibernate 5.0.0.CR4 und Feder 4.2.0.RELEASE
Sorry, Sie sagen, dass "Dialekt" weggelassen werden könnte, aber eigentlich versuche ich genau dasselbe zu tun, aber wenn ich den Dialekt nicht setze bekomme ich den Fehler 'org.hibernate.HibernateException: Access to DialectResolutionInfo darf nicht null sein, wenn 'hibernate.dialect' nicht gesetzt ist. Hast du irgendwelche Vorschläge, warum das passiert? – Luca
Leider konnte ich momentan nicht beantworten in welchen Fällen es funktioniert. Vielleicht hängt es von 'dataSource' ab ... –