Author: sletellier Date: 2011-03-25 18:45:33 +0100 (Fri, 25 Mar 2011) New Revision: 2236 Url: http://nuiton.org/repositories/revision/topia/2236 Log: - Add getSchema method utility - Get version take care of db schema Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/mappings/TMSVersionDAO.java Modified: trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java =================================================================== --- trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java 2011-03-25 16:14:11 UTC (rev 2235) +++ trunk/topia-persistence/src/main/java/org/nuiton/topia/framework/TopiaUtil.java 2011-03-25 17:45:33 UTC (rev 2236) @@ -59,6 +59,8 @@ /** to use log facility, just put in your code: log.info(\"...\"); */ static private Log log = LogFactory.getLog(TopiaUtil.class); + public final static String HIBERNATE_DEFAULT_SCHEMA = "hibernate.default_schema"; + /** * Permet de récupérer le fichier de propriété ayant le nom passé en * argument. @@ -281,4 +283,14 @@ return true; } + + /** + * Return hibernate schema name + * + * @param config of hibernate + * @return schema name + */ + public static String getSchemaName(Configuration config) { + return config.getProperty(HIBERNATE_DEFAULT_SCHEMA); + } } Modified: trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/mappings/TMSVersionDAO.java =================================================================== --- trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/mappings/TMSVersionDAO.java 2011-03-25 16:14:11 UTC (rev 2235) +++ trunk/topia-service-migration/src/main/java/org/nuiton/topia/migration/mappings/TMSVersionDAO.java 2011-03-25 17:45:33 UTC (rev 2236) @@ -36,6 +36,7 @@ import org.nuiton.topia.TopiaException; import org.nuiton.topia.TopiaRuntimeException; import org.nuiton.topia.framework.TopiaContextImplementor; +import org.nuiton.topia.framework.TopiaUtil; import org.nuiton.util.Version; import org.nuiton.util.VersionUtil; @@ -135,8 +136,14 @@ public static Version getVersion(TopiaContext tx, String tableName) { try { - GetVersionWork work = new GetVersionWork(tableName); - ((TopiaContextImplementor) tx).getHibernate().doWork(work); + TopiaContextImplementor txImpl = (TopiaContextImplementor) tx; + Configuration hibernateConfiguration = txImpl.getHibernateConfiguration(); + + // Get schema name + String schemaName = TopiaUtil.getSchemaName(hibernateConfiguration); + + GetVersionWork work = new GetVersionWork(schemaName, tableName); + txImpl.getHibernate().doWork(work); Version v = work.getVersion(); return v; } catch (TopiaException e) { @@ -149,14 +156,21 @@ protected Version version; private final String tableName; + private final String schemaName; - public GetVersionWork(String tableName) { + public GetVersionWork(String schemaName, String tableName) { this.tableName = tableName; + this.schemaName = schemaName; } @Override public void execute(Connection connection) throws SQLException { - PreparedStatement st = connection.prepareStatement("select " + TMSVersion.PROPERTY_VERSION + " from " + tableName + ";"); + + String fullTableName = (schemaName == null ? + tableName : schemaName + "." + tableName); + + + PreparedStatement st = connection.prepareStatement("select " + TMSVersion.PROPERTY_VERSION + " from " + fullTableName + ";"); try { ResultSet set = st.executeQuery();