好吧,我的是一个愚蠢的问题。
使用Hibernate 5.1(5.2相同),我的Year
列会映射到tinyblob
,而不是人们期望的直观int
列。其他JSR-310列已成功映射。
E.g。
@Column(name = "ANNO_PROTOCOLLO", nullable = true)
protected Year annoProtocollo;
@Column(name = "CREATED", nullable = false, updatable = false, insertable = true)
protected LocalDateTime created = LocalDateTime.now();
第一列映射到tinyblob
,但第二列正确映射到datetime
,这是此类值的SQL标准。
同样,我的问题很愚蠢,因为没有什么能阻止我将Year列声明为int,但我想了解其背后的原因以及是否有一种方法需要少于3行代码将Year映射到int。因为我需要处理多个数据库,所以我不能接受@Column(columnDefinition)
,如果这是唯一的解决方案,我将使用Integer并使用它,就像我之前做的那样
答案 0 :(得分:2)
简单的原因是他们没有为time malloc 0.000046
time free 0.000003
提供特定的映射,因此您将获得对象序列化到/从字节的默认映射,即一个BLOB。
您可以实现自定义类型以提供映射 请参阅Hibernate Domain Model Mapping Guide - Custom BasicTypes。