hibernate3.3+mysql,数据库表是联合主键,其中一个为Date类型。此时对日期进行比较时,结果不正确。应该如何修改?
表结构:
CREATE TABLE temp
(room_id
int(11) NOT NULL,priceDate
date NOT NULL,value
varchar(20) DEFAULT NULL,
PRIMARY KEY (room_id
,priceDate
)
);
映射文件:
测试代码大致如下:
Date tempDate = DateUtils.parseDate("2013-04-10");
TempId id = new TempId(1, tempDate);
Temp temp = new Temp(id, "123");
save(temp);
Temp savedTemp = load(Temp.class, id);
System.out.println(savedTemp);
------预计结果------
Temp@*****
------实际结果------
null
测试代码里的save和load,都是直接使用的getHibernateTemplate()里的save和load。
日期转换DateUtils.parseDate是用的SimpleDateFormat将字符串转为日期,格式为yyyy-MM-dd。
为什么load不到结果呢?原有的数据库设计就是这样的,目前无法进行结构与类型的修改。
现在需要对这样的表进行批量新增与更新数据,这时hibernate会自动使用load方法去根据ID判断是否存在数据,如果load结果为null,就会进行插入,这时就会报错,主键唯一约束的错误。
请大家帮忙看看,有没有什么好的解决办法???