[hibernate-issues] [Hibernate-JIRA] Created: (HHH-6927) Cannot register a type through configuration if the type is parametrized
Stephane Nicoll (JIRA)
noreply at atlassian.com
Fri Dec 30 10:18:21 EST 2011
Cannot register a type through configuration if the type is parametrized
------------------------------------------------------------------------
Key: HHH-6927
URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-6927
Project: Hibernate Core
Issue Type: Bug
Components: core
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