Exporter des données à partir d'une base de données SQL
Utilisez le projet liquibase opensource
LiquiBase est une open source (LGPL), une bibliothèque de base de données indépendante pour le suivi, la gestion et l'application des modifications de base de données. Il repose sur une prémisse simple: toutes les modifications de la base de données (structure et données) sont stockées de manière descriptive XML et vérifiées dans le contrôle source.
créer Generate et un script drop pour les entités données JPA
Nous utilisons ce code pour générer la chute et de créer des déclarations: Il suffit de construire cette classe avec toutes les classes d'entités et appellent créer/dropTableScript.
Si nécessaire, vous pouvez utiliser un nom de persitence.xml et de persitance. Il suffit de dire quelque chose et je poste le code aussi.
import java.util.Collection;
import java.util.Properties;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.dialect.Dialect;
import org.hibernate.ejb.Ejb3Configuration;
/**
* SQL Creator for Tables according to JPA/Hibernate annotations.
*
* Use:
*
* {@link #createTablesScript()} To create the table creationg script
*
* {@link #dropTablesScript()} to create the table destruction script
*
*/
public class SqlTableCreator {
private final AnnotationConfiguration hibernateConfiguration;
private final Properties dialectProps;
public SqlTableCreator(final Collection> entities) {
final Ejb3Configuration ejb3Configuration = new Ejb3Configuration();
for (final Class entity : entities) {
ejb3Configuration.addAnnotatedClass(entity);
}
dialectProps = new Properties();
dialectProps.put("hibernate.dialect", "org.hibernate.dialect.SQLServerDialect");
hibernateConfiguration = ejb3Configuration.getHibernateConfiguration();
}
/**
* Create the SQL script to create all tables.
*
* @return A {@link String} representing the SQL script.
*/
public String createTablesScript() {
final StringBuilder script = new StringBuilder();
final String[] creationScript = hibernateConfiguration.generateSchemaCreationScript(Dialect
.getDialect(dialectProps));
for (final String string : creationScript) {
script.append(string).append(";\n");
}
script.append("\ngo\n\n");
return script.toString();
}
/**
* Create the SQL script to drop all tables.
*
* @return A {@link String} representing the SQL script.
*/
public String dropTablesScript() {
final StringBuilder script = new StringBuilder();
final String[] creationScript = hibernateConfiguration.generateDropSchemaScript(Dialect
.getDialect(dialectProps));
for (final String string : creationScript) {
script.append(string).append(";\n");
}
script.append("\ngo\n\n");
return script.toString();
}
}
Il s'agit d'une répétition de http://stackoverflow.com/questions/297438/auto-generate-data-schema-from-jpa-annotated-entity-classes. – stevedbrown