[hibernate-issues] [Hibernate-JIRA] Resolved: (HHH-2488) Resolution of filters' conditions should be postponed till all mappings are loaded.

Diego Pires Plentz (JIRA) noreply at atlassian.com
Thu Aug 16 09:03:14 EDT 2007


     [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-2488?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Diego Pires Plentz resolved HHH-2488.
-------------------------------------

      Assignee: Diego Pires Plentz
    Resolution: Duplicate

> Resolution of filters' conditions should be postponed till all mappings are loaded.
> -----------------------------------------------------------------------------------
>
>                 Key: HHH-2488
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-2488
>             Project: Hibernate3
>          Issue Type: Bug
>          Components: core
>    Affects Versions: 3.2.2
>         Environment: Hibernate-Version: 3.2.2.ga
> Java(TM) SE Runtime Environment (build 1.6.0-b105)
>            Reporter: Dmitry Katsubo
>            Assignee: Diego Pires Plentz
>
> When trying to use the possibility to define the conditions for the same filters in {{<filter-def>}}, the following exception occurs, as the resolution of conditions should be done at a later stage, after all mappings are loaded:
> {noformat}
> Exception in thread "main" java.lang.NullPointerException
> 	at org.hibernate.cfg.HbmBinder.parseFilter(HbmBinder.java:2931)
> 	at org.hibernate.cfg.HbmBinder.bindCollection(HbmBinder.java:1462)
> 	at org.hibernate.cfg.HbmBinder$2.create(HbmBinder.java:2757)
> {noformat}
> The example of definition, that uses filters:
> {code:xml|title=clauses.hbm.xml|borderStyle=solid}
> 	<class name="ClauseFolderImpl" table="stc_folders">
> 		<id name="id">
> 			<generator class="native" />
> 		</id>
> 		<property name="name" not-null="true" />
> 		<property name="private" not-null="true" />
> 		<set name="subFolders" outer-join="false" cascade="none">
> 			<key column="parentId" />
> 			<one-to-many class="ClauseFolderImpl" />
> 			<filter name="folderFilterLimited" />
> 			<filter name="folderFilter" />
> 		</set>
> 		
> 		<filter name="folderFilterLimited" />
> 		<filter name="folderFilter" />
> 	</class>
> 	<filter-def name="folderFilterLimited" condition="(parentId is null or (languageId = :languageId and procedureTypeId = :procedureTypeId))" >
> 		<filter-param name="languageId" type="int" />
> 		<filter-param name="procedureTypeId" type="int" />
> 	</filter-def>
> 	<filter-def name="folderFilter" condition="(parentId is null or private = :isPrivate)">
> 		<filter-param name="isPrivate" type="boolean" />
> 	</filter-def>
> {code}
> As Hibernate ues DTD to check the validity of configuration file, the {{<filter-def>}} definitions can't be moved to the beginning of the configuration file. The possible walkaround is to define filters in another file, and include it first:
> {code:xml|title=hibernate-configuration.xml|borderStyle=solid}
> <hibernate-configuration>
>     <session-factory>
> ...
>         <mapping resource="filters.hbm.xml"/> <!-- only filter-def's here -->
>         <mapping resource="clauses.hbm.xml"/>
> ...
>     </session-factory>
> </hibernate-configuration>
> {code}
> Relative issue is [http://opensource.atlassian.com/projects/hibernate/browse/HHH-1182#action_21052 HHH-1182].

-- 
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