代码敲累了,歇一歇,想起自己前几天遇到的一个问题,跟大家分享下:做差旅报告的时候,为了保证数据的准确性和实时性
我关联很多表创建了一个视图(没有主键),以此为基础表去摘取数据做统计分析,使用hibernate注解做的ORM映射,主键为order_no,
查询数据时发现问题,就是字段order_no相同的数据,映射到实体bean之后的结果为全部复制为第一条order_no对应的数据
,(比如5条数据,order_no都相同,其他字段值不同,但是映射之后就会对第一条数据复制5条)然后就是各种找、各种调,各种头疼加郁闷
最后才想到主键!刚开始把实体bean的主键去掉,启动报错,原因是hibernate的缓存机制,hibernate对象化操作,会把你从数据库中检索的
数据存到缓存中,当你再次使用时,必须通过一个唯一标识来检索缓存,他就是主键,不然你多个对象怎么区分,最后通过rownum充当主键
成功将问题解决!
我关联很多表创建了一个视图(没有主键),以此为基础表去摘取数据做统计分析,使用hibernate注解做的ORM映射,主键为order_no,
查询数据时发现问题,就是字段order_no相同的数据,映射到实体bean之后的结果为全部复制为第一条order_no对应的数据
,(比如5条数据,order_no都相同,其他字段值不同,但是映射之后就会对第一条数据复制5条)然后就是各种找、各种调,各种头疼加郁闷
最后才想到主键!刚开始把实体bean的主键去掉,启动报错,原因是hibernate的缓存机制,hibernate对象化操作,会把你从数据库中检索的
数据存到缓存中,当你再次使用时,必须通过一个唯一标识来检索缓存,他就是主键,不然你多个对象怎么区分,最后通过rownum充当主键
成功将问题解决!