MySQL 到“YEAR”类型的 Hibernate 数据类型映射
Posted
技术标签:
【中文标题】MySQL 到“YEAR”类型的 Hibernate 数据类型映射【英文标题】:MySQL to Hibernate datatype mapping for type "YEAR" 【发布时间】:2015-02-06 01:52:05 【问题描述】:我们的数据库中有一个列需要为YEAR
类型。实体对应的 Hibernate 映射是什么?尝试了所有搜索,但无法找到详细信息。我不确定是否需要使用 @Temporal
或任何其他特定类型的任何内容。我们正在使用 Hibernate ORM v4.1.7。
【问题讨论】:
***.com/questions/696506/… 【参考方案1】:您可以编写一个Hibernate UserType,它将一个整数带到 mysql YEAR 列。
检查例如 Joda Hibernate UserTypes 这是您自定义 Hiberante 类型的良好起点。
【讨论】:
感谢您的建议。你的意思是在 Hibernate 中没有可用的直接映射,我必须编写一个用户类型? 是的。我就是这个意思。 浏览 MySqlDialect 代码,看起来 MySQL YEAR 应该自然地映射到 Integer。不过我没用过,所以无法给出明确的答案。 我认为您指的是the YEAR function,而不是 YEAR 类型: registerFunction("year", new StandardSQLFunction("year", Hibernate.INTEGER) ); 我很确定我在 YEAR 列中使用了Integer
,它开箱即用。但是,无法再访问该项目。 MySQL reference manual 说“您可以将输入 YEAR 值 [...] 指定为 4 位数字”,我认为应该允许 Integer
。以上是关于MySQL 到“YEAR”类型的 Hibernate 数据类型映射的主要内容,如果未能解决你的问题,请参考以下文章
6.Spring+Struts+Hibernat注解方式整合
mysql中的时间类型datetime,date,time,year,timestamp小知识点