[
http://opensource.atlassian.com/projects/hibernate/browse/HBX-1071?page=c...
]
Max Rydahl Andersen commented on HBX-1071:
------------------------------------------
thanks for this - does this one work with Oracle9,10 and 11 too ?
About this comment:
"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." I don't understand what you mean with more
precise ?
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
Attachments: Oracle8iMetaDataDialect.java
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....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira