抱歉,有遗漏。该文档描述了注册表和密钥,但在一定程度上希望用户能够推断出 1+1=2。我会更明确地说明这一点。
http://docs.jboss.org/hibernate/orm/3.6/reference/en-US/html/types.html#types-value-basic描述内置注册密钥。
正如您在该部分中看到的那样,注册表中的默认映射java.lang.String
是 to org.hibernate.type.StringType
。因此,当 Hibernate 看到其 java 类型为它的属性时,它会使用“注册键”java.lang.String
查看此注册表。java.lang.String
同样,这都是默认的;如果您愿意,您仍然可以为每个属性提供明确的类型信息。这在文档的其他地方进行了描述。基本上你会使用@Type
or <type/>
。
如果您希望 Hibernate 在SuperDuperStringType
没有提供明确类型信息的任何时候使用您的,您可以使用 "java.lang.String" 作为SuperDuperStringType
's getRegistrationKeys()
:
public class SuperDuperStringType implements BasicType {
...
@Override
public String[] getRegistrationKeys() {
// lets use delegation and register ourselves under all of StringType's keys
return org.hibernate.type.StringType.INSTANCE.getRegistrationKeys();
}
}
在这种情况下,映射中不需要任何明确的内容。