[hibernate-issues] [Hibernate-JIRA] Created: (HBX-1071) OracleMetaDataDialect not 8i compliant ... join keyword versus (+)

Nobody Who Cares (JIRA) noreply at atlassian.com
Mon Jul 7 11:11:39 EDT 2008


OracleMetaDataDialect not 8i compliant ... join keyword versus (+)
------------------------------------------------------------------

                 Key: HBX-1071
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HBX-1071
             Project: Hibernate Tools
          Issue Type: Bug
          Components: reverse-engineer
    Affects Versions: 3.2.0.GA
         Environment: Whatever 3.2.X version is packaged w/ JBoss Seam 2.0.2.SP1, Oracle 8.1.7.4.0
            Reporter: Nobody Who Cares
            Priority: Minor


The SQL constants used in the prepared statements use the "left join" phrase instead of the 8i equivalent syntax where the "(+)" symbol is located appropriately based on right/left qualifier.  Subsequent execution produces the following exception as expected with unrecognized syntax:

Caused by: java.sql.SQLException: ORA-00933: SQL command not properly ended

        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:169)
        at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
        at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
        at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
        at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteDescribe(TTC7Protocol.java:
643)
        at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.jav
a:1819)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:2015)
        at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePrepar
edStatement.java:395)
        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePrepare
dStatement.java:339)
        at org.hibernate.cfg.reveng.dialect.OracleMetaDataDialect.getTableResult
Set(OracleMetaDataDialect.java:672)
        at org.hibernate.cfg.reveng.dialect.OracleMetaDataDialect.getTables(Orac
leMetaDataDialect.java:221)
        ... 30 more

The 8i syntax should be used since it is compatible with all versions of Oracle.  I realize that 8i is a decade+ old...but it is still employed in many commercial and government mission critical enterprise systems.

Overriding the class with the generic JDBCMetaDataDialect class (i.e. hibernatetool.metadatadialect property value) also produces an exception (i.e. Invalid column name) because the ResultSet inner class convertRow() method implementation uses getString"<table name>") as opposed to the more precise getString(<index>) technique.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list