Skip to content

NH-2248 - Where clause with fetch=join on Oracle9iDialect produces invalid SQL #1217

Open
@nhibernate-bot

Description

@nhibernate-bot

Julien Adam created an issue — 21st July 2010, 9:36:40:

I have a mapping file with a property similar to this, mapping to an IDictionary property :

<map name="Records" table="TPROD_HISTO" sort="unsorted" where="HISTO_DATEVAL >= SYSDATE-60" fetch="join">
  <key column="HIST_ID" />
  <index column="HISTO_DATEVAL" type="DateTime"/>
  <one-to-many class="MyObject, MyAssembly"/>
</map>

Using the Oracle9i dialect, the SQL that is produced by a simple select all criteria query is invalid and looks like this :

WHERE records2_.HISTO_DATEVAL (+)>(+)= SYSDATE-60

Somehow the where clause was modified with join operators.

I poked around a bit and it looks like it comes from the OracleJoinFragment.AddLeftOuterJoinCondition method.

Using the Oracle10g dialect, the SQL is correct and works properly, because it uses ANSI joins and thus bypasses the problem altogether.

Sorry I can't upload the files directly, I'd have to redact them first.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions