Probably it is not supported... I have added the typedef support to <id> but I have never tested it with composite-id (you can imagine why ;) ). In the trunk I have "refactorized" (better say re-write) all mappings stuff and hopefully it is working there. Can you create a simple behaviour-test ? If yes, please add a JIRA issue with the test attached. Thanks.
2010/1/18 DanPlaskon <[email protected]> > I'm not sure if I'm running into an Nhibernate bug here, or if this > just isn't possible. I seem to be having a problem using a typedef as > a key-property for my entity. > > Here are the mappings that fail (only showin relevent sections): > > Entity Mapping: > > <?xml version="1.0" encoding="utf-8" ?> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > namespace="MyProduct.Core.Domain" assembly="MyProduct.Core" default- > access="property"> > <class name="UserCustomField" table="UserCustomField" lazy="true" > abstract="true"> > <composite-id name="Id" class="UserCustomFieldKey"> > <key-many-to-one name="User" column="UserId" class="User" > access="nosetter.pascalcase-m-underscore" /> > <key-many-to-one name="CustomField" column="CustomFieldId" > class="CustomField" access="nosetter.pascalcase-m-underscore"/> > <key-property name="EditState" column="EditStateId" > access="nosetter.pascalcase-m-underscore" type="EditState" /> > </composite-id> > </class> > </hibernate-mapping> > > Typedef Mapping: > > <?xml version="1.0" encoding="utf-8" ?> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > namespace="MyProduct.Core.Domain" assembly="MyProduct.Core" default- > access="property"> > <typedef name="EditState" > class="MyProduct.Infrastructure.NHibernate.CustomUserTypes.EditStateType, > MyProduct.Infrastructure" /> > </hibernate-mapping> > > > This fails with the following error message: > > Executing: TestSetup.RunBeforeAllTests > 10:12:12,872 ERROR [TestRunnerThread] ReflectHelper [(null)]- Could > not load type EditState. > System.TypeLoadException: Could not load type EditState. Possible > cause: no assembly name specified. > > at NHibernate.Util.ReflectHelper.TypeFromAssembly > (AssemblyQualifiedTypeName name, Boolean throwOnError) > > 10:12:13,044 ERROR [TestRunnerThread] Configuration [(null)]- Could > not compile the mapping document: > MyProduct.Infrastructure.UserCustomField.hbm.xml > NHibernate.MappingException: Could not compile the mapping document: > MyProduct.Infrastructure.UserCustomField.hbm.xml ---> > NHibernate.MappingException: Could not determine type for: EditState, > for columns: NHibernate.Mapping.Column(EditStateId) > > > If however, I change my Entity Mapping to inline the type definition > as follows: > > > <key-property name="EditState" column="EditStateId" > access="nosetter.pascalcase-m-underscore" > type="MyProduct.Infrastructure.NHibernate.CustomUserTypes.EditStateType, > MyProduct.Infrastructure" /> > > Everything works fine. > > So...am I doing something stupid? Or does Nhibernate just not support > typedefs on key properties? I should note that this typedef works just > fine in other mappings for non-key properties. > > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > > > > -- Fabio Maulo--
You received this message because you are subscribed to the Google Groups "nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
