[hibernate-issues] [Hibernate-JIRA] Updated: (HHH-6927) Allow registering type defs via Configuration
Steve Ebersole (JIRA)
noreply at atlassian.com
Fri Dec 30 13:28:19 EST 2011
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-6927?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Steve Ebersole updated HHH-6927:
--------------------------------
Component/s: metamodel
Issue Type: New Feature (was: Bug)
Summary: Allow registering type defs via Configuration (was: Cannot register a type through configuration if the type is parametrized)
Stephane, I went ahead and just converted this issue to a RFE. If you do not really care about this or do not really want it go ahead and close this issue.
> Allow registering type defs via Configuration
> ---------------------------------------------
>
> Key: HHH-6927
> URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6927
> Project: Hibernate Core
> Issue Type: New Feature
> Components: core, metamodel
> Affects Versions: 3.6.5
> Reporter: Stephane Nicoll
>
> Since I don't want to hardcode @TypeDefs in each class hierarchy that uses a custom type, I am using the {{cfg.registerTypeOverride}} method. This works fine for simple user type but I have a parameterized user type.
> In that case, using this method leads to a single user type instance being used and shared for all my entities and no parameter is injected at all. Looking a bit deeper I think I found the culprit in TypeResolver.
> {code:java}
> public Type heuristicType(String typeName, Properties parameters) throws MappingException {
> Type type = basic( typeName );
> if ( type != null ) {
> return type;
> }
> try {
> Class typeClass = ReflectHelper.classForName( typeName );
> if ( typeClass != null ) {
> return typeFactory.byClass( typeClass, parameters );
> }
> }
> catch ( ClassNotFoundException ignore ) {
> }
> return null;
> }
> {code}
> base(typeName) will actually return the type that I have registered. Notice that basic does not take the {{parameters}} argument into account. Since it's not null it just returns that type.
> Maybe I did something wrong. I was surprised that cfg actually registers *instances* and not classes. Both @TypeDefs and hbm.xml specifies classes. Maybe adding an option to register a class programmatically?
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the hibernate-issues
mailing list