[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-6927) Cannot register a type through configuration if the type is parametrized
Stephane Nicoll (JIRA)
noreply at atlassian.com
Fri Dec 30 12:15:19 EST 2011
[ http://opensource.atlassian.com/projects/hibernate/browse/HHH-6927?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=44779#comment-44779 ]
Stephane Nicoll commented on HHH-6927:
--------------------------------------
In other words, you're saying that registration key equals User type class + parameters. That's fine by me but if you don't know all the possible combinations in advance, what do you do?
> 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