[hibernate-issues] [Hibernate-JIRA] Closed: (HHH-2571) Evaluating criteria expression with property of type Class throws "Unsupported discriminator type" exception
Gail Badner (JIRA)
noreply at atlassian.com
Fri Oct 26 15:31:38 EDT 2007
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gail Badner closed HHH-2571.
----------------------------
Assignee: Gail Badner
Resolution: Duplicate
> Evaluating criteria expression with property of type Class throws "Unsupported discriminator type" exception
> ------------------------------------------------------------------------------------------------------------
>
> Key: HHH-2571
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2571
> Project: Hibernate3
> Issue Type: Bug
> Components: query-criteria
> Affects Versions: 3.2.2, 3.2.3, 3.2.4
> Environment: 3.2.3, Oracle
> Reporter: Tim Vasil
> Assignee: Gail Badner
> Priority: Minor
>
> Here's a sample mapping:
> <class name="Event" table="tbl_event">
> <id name='id' column='objid'>
> <generator class="sequence">
> <param name="sequence">event_id_seq</param>
> </generator>
> </id>
> <version name='version' column='version'/>
> <property name="timestamp" column="timestamp" not-null="true" />
> <property name="sourceObjectClass" column="source_object_class" type="Class"/>
> </class>
> Here's the criteria query I tried to execute:
> Criteria oCriteria = session.createCriteria(Event.class);
> oCriteria.add(Expression.eq("sourceObjectClass", czTargetClass));
> oCriteria.list();
> If and only if czTargetClass is a class that is mapped (such as Event.class, or any other class in the mapping file), a QueryException("Unsupported discriminator type " + type) exception is thrown in CriteriaQueryTranslator.java.
> This is a regression; the technique used to work in Hibernate 2 but broke when support for querying with discriminator types was added in Hibernate 3.
> You can see in CriteraQueryTranslator.getTypedValue() that when a value of type Class is passed in and SessionFactoryHelper.findQueryableUsingImports() returns a non-null value, the code assumes it must be a discriminator value. This is not necessarily the case, though, as you can see in this example.
> The workaround I'm employing currently is to create a user-defined type that works like Hibernate's built-in ClassType but is able to query for classes based on String values in addition to Class values.
--
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