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 数据类型映射的主要内容,如果未能解决你的问题,请参考以下文章

如何比较 MYSQL 中的 YEAR 类型?

6.Spring+Struts+Hibernat注解方式整合

mysql中的时间类型datetime,date,time,year,timestamp小知识点

如何在MySQL DATETIME字段中存储DATE / TIME / YEAR?

mysql时间类型

跟王老师学MySQL:MySQL数据类型之日期与时间类型