Hibernate的设计问题

咖啡杯 发布于 2012/02/07 11:22
阅读 1K+
收藏 1
还有个 Hibernate的问题,一个老项目使用了 Hibernate的 Annotation 技术并且使用了spring的 OpenSessionInViewFilter,而且是基于互联网的,网速慢导致数据库连接增加和连接时间过长。经常坏掉,现在由于历史数据增加,要求分离业务数据到历史表,那还得写hibernate的历史表对应的entity类?对 Hibernate不精通,但现在对这个技术非常厌恶。还是自己写SQL来的实在。 有什么好办法?
加载中
0
有个二逼领导的程序员
有个二逼领导的程序员
Hibernate 中也可以写SQL的
JFinal
JFinal
@JFinal Hibernate确实可以写sql,但感觉不是很方便
JFinal
JFinal
Hibernate完全没有必要自己发明一套HQL,用sql就挺好的,rails 的ActiveRecord用的就是 sql
luluback
luluback
Hibernate 中的写SQL执行时间 是SpringJdbcTemplate 的好几倍
0
DanielTo
DanielTo
有自动生成的工具,可以试试。
0
凤舞凰扬
凤舞凰扬

   所谓基于互联网的是指你的应用程序通过互联网访问数据库? 这确实是一个非常低劣的设计啊。在数据库访问时,数据传输的IO是最为关键的性能瓶颈,在百兆的LAN已经也突出了,更何况一般只有1-2M上下行速率的互联网。

    这个问题不使用SQL还是其他来解决的。从根本架构上就要改进。

    其次Hibernate是ORM,解决的是实体关系映射,最适合的用途是实体的持久化。你的历史表已经统计更多是视图(不是数据库视图,而是客户视觉的表述)层面的东西,不建议使用hibernate。

0
jiangtao
jiangtao

引用来自“凤舞凰扬”的答案

   所谓基于互联网的是指你的应用程序通过互联网访问数据库? 这确实是一个非常低劣的设计啊。在数据库访问时,数据传输的IO是最为关键的性能瓶颈,在百兆的LAN已经也突出了,更何况一般只有1-2M上下行速率的互联网。

    这个问题不使用SQL还是其他来解决的。从根本架构上就要改进。

    其次Hibernate是ORM,解决的是实体关系映射,最适合的用途是实体的持久化。你的历史表已经统计更多是视图(不是数据库视图,而是客户视觉的表述)层面的东西,不建议使用hibernate。

说话的口气好像海龟!
jiangtao
jiangtao
@凤舞凰扬 : 当然不是贬义词,这句话“这确实是一个非常低劣的设计啊”,一般都是出自国外的书籍翻译过来。我也是土鳖,哈哈
凤舞凰扬
凤舞凰扬
其实是个土鳖... 希望你说的海龟不是个贬义词,呵呵
0
张海雷

OpenSessionInViewFilter 网速慢导致数据库连接增加和连接时间过长 

这样的解释明显有错,openSessionInview 是从进入servlet之前开始,到调用servlet结束渲染成html完为止,如果说导致连接增加或者时间过长,你的servlet处理逻辑的时间过长倒是有可能

      网速慢只会影响传输时间,和session没有半点关系!分析问题要找实质哦!

0
JFinal
JFinal
我倾向于对SQL进行很薄很薄的一层封装,类似于DbUtil开源框架。但俺对rails 的ActiveRecord非常着迷,故在JFinal中实现了ActiveRecord,呵呵;)
0
j
jfheng

Hibernate 这么好的东西 你居然 厌恶!!! 

把它弄明白 你会发现无论是程序开发速度,还是程序运行速都会大大的提高

当然前提是 你要把它弄明白

历史数据有多少啊  几亿条?


0
h609232722
h609232722
我们用的IDE上都应该有生成工具的,Myeclipse.....
返回顶部
顶部