/* * Created on 2004-11-23 * */ package org.hibernate.tool.test.jdbc2cfg; import java.sql.SQLException; import org.hibernate.cfg.JDBCMetaDataConfiguration; import org.hibernate.cfg.reveng.dialect.OracleMetaDataDialect; import org.hibernate.dialect.Dialect; import org.hibernate.dialect.Oracle10gDialect; import org.hibernate.dialect.Oracle12cDialect; import org.hibernate.dialect.Oracle8iDialect; import org.hibernate.dialect.Oracle9iDialect; import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.Table; import org.hibernate.tool.JDBCMetaDataBinderTestCase; import junit.framework.Test; import junit.framework.TestSuite; /** * @author max * */ public class OracleViewsTest extends JDBCMetaDataBinderTestCase { /** * @return */ protected String[] getDropSQL() { return new String[] { "drop table basic", "drop table somecolumnsnopk", "drop table multikeyed", "drop view basicView", "drop synonym weirdname" }; } /** * @return */ protected String[] getCreateSQL() { return new String[] { "create table basic ( a int not null, primary key (a) )", "create table somecolumnsnopk ( pk varchar(25) not null, b char, c int not null )", "create table multikeyed ( orderid varchar(10), customerid varchar(10), name varchar(10), primary key(orderid, customerid) )", "create view basicView as select a from basic", "create synonym weirdname for multikeyed", "comment on table basic is 'a basic comment'", "comment on column basic.a is 'a solid key'" }; } public boolean appliesTo(Dialect dialect) { return dialect instanceof Oracle8iDialect || dialect instanceof Oracle9iDialect || dialect instanceof Oracle10gDialect || dialect instanceof Oracle12cDialect; } protected void configure(JDBCMetaDataConfiguration configuration) { configuration.setProperty( "hibernatetool.metadatadialect", OracleMetaDataDialect.class.getName() ); } public void testViewAndSynonyms() throws SQLException { PersistentClass classMapping = cfg.getMetadata().getEntityBinding(toClassName("basicview") ); assertNotNull(classMapping); classMapping = cfg.getMetadata().getEntityBinding(toClassName("weirdname") ); assertTrue("If this is not-null synonyms apparently work!",classMapping==null); // get comments Table table = getTable(identifier("basic")); assertEquals("a basic comment", table.getComment()); assertEquals("a solid key", table.getPrimaryKey().getColumn(0).getComment()); table = getTable(identifier("multikeyed")); assertNull(table.getComment()); assertNull(table.getColumn(0).getComment()); } public static Test suite() { return new TestSuite(OracleViewsTest.class); } }