setMaxResults causes "ORA-00918: column ambiguously defined" exception

Description

when create criteria with associations, i get this error:
ORA-00918: column ambiguously defined

mapping:
<class name="User" table="FRAME_USER" dynamic-update="true" dynamic-insert="true">

<id name="id" type="long" unsaved-value="null">
<column name="ID" not-null="true"/>
<generator class="sequence">
<param name="sequence">frame_user_seq</param>
</generator>
</id>

<version type="timestamp" column="stamp" name="timestamp" unsaved-value="null"/>

<property name="user_name" type="string" not-null="true"/>
<property name="blocked" type="yes_no" not-null="true"/>
<property name="access_logon" type="timestamp"/>
<property name="denied_logon" type="timestamp"/>
<property name="inactivity_time" type="long"/>
<property name="session_count" type="long"/>

<idbag name="terminalGroups" table="FRAME_USER_TERMINAL" fetch="join" outer-join="true">
<collection-id column="ID" type="long">
<generator class="sequence">
<param name="sequence">frame_user_terminal_seq</param>
</generator>
</collection-id>
<key column="id_user"/>
<many-to-many column="id_terminal_groups" class="TerminalGroup" fetch="join" outer-join="true"/>
</idbag>
</class>
<class name="TerminalGroup" table="FRAME_TERMINAL_GROUPS" dynamic-update="true" dynamic-insert="true">

<id name="id" type="long" unsaved-value="null">
<column name="ID" not-null="true"/>
<generator class="sequence">
<param name="sequence">frame_terminal_groups_seq</param>
</generator>
</id>

<version type="timestamp" column="stamp" name="timestamp" unsaved-value="null"/>

<property name="name" column="group_name" type="string" not-null="true"/>

<idbag name="terminals" table="FRAME_TERMINAL_REL" fetch="join" outer-join="true">
<collection-id column="ID" type="long" >
<generator class="sequence">
<param name="sequence">frame_terminal_rel_seq</param>
</generator>
</collection-id>
<key column="id_term_group"/>
<many-to-many column="id_term" class="Terminal" fetch="join" outer-join="true"/>
</idbag>
</class>
<class name="Terminal" table="FRAME_TERMINAL" where="status != 'D'" dynamic-update="true" dynamic-insert="true">

<id name="id" type="long" unsaved-value="null">
<column name="ID" not-null="true"/>
<generator class="sequence">
<param name="sequence">frame_terminal_seq</param>
</generator>
</id>

<version type="timestamp" column="stamp" name="timestamp" unsaved-value="null"/>
<property name="status" type="char" not-null="true"/>

<property name="mac" type="string" not-null="true"/>
<property name="name" column="ident" type="string" not-null="true"/>
<property name="description" type="string"/>
code:
session.createCriteria(User.class)
.add(Restrictions.like("user_name", "%")
.createCriteria("terminalGroups")
.add( Restrictions.like("group_name", "%").
.setProjection(Projections.rowCount())
.uniqueResult();

Attachments

7
100% Done
Loading...

Activity

Show:

Andrea Boriero August 6, 2015 at 3:20 PM

Andrea Boriero August 1, 2015 at 8:37 AM

The PR solves the problem for HQL but not for Criteria

Andrea Boriero August 1, 2015 at 12:56 AM

The issue is present on Oracle and the PR solves it.

I added a couple of comments to the PR.

Andrea Boriero July 31, 2015 at 11:05 PM

yes

Steve Ebersole July 31, 2015 at 6:27 PM

Since you have a working Oracle install, could you verify this issue for me and verify the PR?

Fixed

Details

Assignee

Reporter

Time tracking

5.55h logged

Components

Fix versions

Affects versions

Priority

Created September 13, 2005 at 4:40 PM
Updated August 20, 2015 at 8:32 PM
Resolved August 20, 2015 at 5:39 PM