]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc/src/main/java/org/argeo/slc/unit/DbModel.java
dacb80369fcf9a75b760800d19c2ee7d8ce86047
[gpl/argeo-slc.git] / org.argeo.slc / src / main / java / org / argeo / slc / unit / DbModel.java
1 package org.argeo.slc.unit;
2
3 import java.sql.Connection;
4 import java.util.List;
5 import java.util.Properties;
6
7 import org.hibernate.cfg.Configuration;
8 import org.hibernate.cfg.Environment;
9 import org.hibernate.tool.hbm2ddl.SchemaExport;
10
11 /**
12 * Creates a relational data model from Hibernate mapping files. The benefit of
13 * this class is to be able to use Hibernate to have test data which are
14 * independent from the type of database used.
15 */
16 public class DbModel {
17 private String dialect;
18 private List<String> mappings;
19
20 public void setDialect(String dialect) {
21 this.dialect = dialect;
22 }
23
24 public void setMappings(List<String> mappings) {
25 this.mappings = mappings;
26 }
27
28 public SchemaExport createSchemaExport(Connection connection) {
29 Configuration configuration = new Configuration();
30 Properties properties = new Properties();
31 properties.setProperty(Environment.DIALECT, dialect);
32 properties.setProperty(Environment.HBM2DDL_AUTO, "create");
33 configuration.setProperties(properties);
34
35 for (String mapping : mappings) {
36 configuration.addResource(mapping.trim());
37 }
38
39 return new SchemaExport(configuration, connection);
40 }
41 }