[hibernate-issues] [Hibernate-JIRA] Created: (HHH-3075) Should be possible to register UserTypes for known property types (classes) in configuration

Martin Probst (JIRA) noreply at atlassian.com
Fri Jan 18 08:15:56 EST 2008


Should be possible to register UserTypes for known property types (classes) in configuration
--------------------------------------------------------------------------------------------

                 Key: HHH-3075
                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-3075
             Project: Hibernate3
          Issue Type: Improvement
          Components: core
         Environment: n/a
            Reporter: Martin Probst
            Priority: Minor


Currently, when persisting primitive properties of a class that are not known to Hibernate, there are only cumbersome ways to tell Hibernate that a certain UserType should be used. Good example is Joda Time:
<pre>
@Entity
class MyClass {
  org.joda.time.DateTime foo;
}
</pre>
.. which will result in ugly binary fields in database. Next try:
<pre>
@Entity
class MyClass {
  @Type(type = "org.joda.time.contrib.hibernate.PersistentDateTime")
  org.joda.time.DateTime foo;
}
</pre>

That works, but now I have to specify that on all time fields of all classes. Plus it's different types for different classes, which makes it more messy. And it's simply a string in code, so it's fragile to refactoring, code move, etc. TypeDefs allow a shorter handle for certain types, but don't really address the refactoring issues.

A better way might be to allow configurations to register UserTypes for known classes. E.g. have a configuration directive like this:
<mappable-type class="org.joda.time.DateTime" usertype="org.joda.time.hibernate.DateTimeType"/>

This would allow the classes to stay clean from type mappings and reduce coupling between domain objects and persistence mapping.

This might be as easy as allowing the org.hibernate.type.TypeFactory map to be extended at configuration time.

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