我在我的 java 控制台应用程序中使用 hibernate 4.1.10,并且我有一个带有以下列的模型:
@Column(name = "created_at", columnDefinition="datetime")
@Temporal(TemporalType.TIMESTAMP)
private Date createdAt;
我只想让 java 正确处理整个 MySQL 日期时间。目前,它只能读取日期部分,其余部分被截断。我有一个简单的测试,我只是将 getCreatedAt() 属性打印到标准输出:
System.out.println(income.getCreatedAt());
它打印出以下内容:
2012-05-11 00:00:00.0
2012-05-29 00:00:00.0
2012-05-30 00:00:00.0
2012-06-28 00:00:00.0
2012-07-30 00:00:00.0
2012-08-29 00:00:00.0
2012-09-28 00:00:00.0
2012-10-30 00:00:00.0
2012-11-29 00:00:00.0
2012-12-02 00:00:00.0
2012-12-21 00:00:00.0
2012-12-24 00:00:00.0
2013-01-30 00:00:00.0
2013-02-27 00:00:00.0
2013-02-27 00:00:00.0
这是我show create table
的桌子:
CREATE TABLE `category` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`parent_id` bigint(20) DEFAULT NULL,
`name` varchar(32) NOT NULL,
`type` varchar(255) DEFAULT NULL,
`created_at` datetime NOT NULL,
`updated_at` datetime NOT NULL,
`created_by` bigint(20) DEFAULT NULL,
`updated_by` bigint(20) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `category_type_idx` (`type`),
KEY `created_by_idx` (`created_by`),
KEY `updated_by_idx` (`updated_by`),
KEY `category_parent_id_category_id` (`parent_id`),
CONSTRAINT `category_created_by_sf_guard_user_id` FOREIGN KEY (`created_by`) REFERENCES `sf_guard_user` (`id`),
CONSTRAINT `category_parent_id_category_id` FOREIGN KEY (`parent_id`) REFERENCES `category` (`id`),
CONSTRAINT `category_updated_by_sf_guard_user_id` FOREIGN KEY (`updated_by`) REFERENCES `sf_guard_user` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8
我一直在尝试遵循在网络上(也在 stackoverflow 上)找到的几个 tuts/answers 并决定使用带有注释的 java.util.Date 而不是 java.sql.Date (因为 MySQL 类型是datetime
)。这就是我设法实现的全部目标。我能做些什么来检索时间部分?