5
回答
hibernate如何实现数据库表水平分区
【腾讯云】校园拼团福利,1核2G服务器10元/月!>>>   

具体是这样的,由于数据库表中的数据量太大了。想要分成若干个表来存储,由于使用了hibernate框架,这样的话一个实体类应该怎样映射数据库表呢。

举报
linsir
发帖于8年前 5回/2K+阅
共有5个答案 最后回答: 8年前

你好你用过oracle吗?

现在我的一个应用中老是出现这个怪怪现象

Oracle是10。在window2003运行,默认防火是开着的。

网站应用是J2EE。网站运行两三天Oracle中listen.log就是说TNS- 12547: TNS: 丢失连接。

网站jdbc是采连接池是用DBCP连接当然就是档掉了。

不知是是什么原因。很怪怪。一直找不出是是什么原因引起的。

可以使用自己的命名策略实现动态表名的映射,也就是用一个配置文件,一个类去映射多个表,每个表的结构相同。

实现接口NamingStrategy,要实现接口里的方法比较多,挺麻烦的

继承DefaultNamingStrategy,只要重写classToTableName这个方法就行了

具体如何操作,lz自己研究研究hibernate的默认实现就行了,狂简单的~~

引用来自#3楼“dong”的帖子

可以使用自己的命名策略实现动态表名的映射,也就是用一个配置文件,一个类去映射多个表,每个表的结构相同。

实现接口NamingStrategy,要实现接口里的方法比较多,挺麻烦的

继承DefaultNamingStrategy,只要重写classToTableName这个方法就行了

具体如何操作,lz自己研究研究hibernate的默认实现就行了,狂简单的~~

 呵呵,多谢,但是这样的话我做插入的时候可以实现往不同的表插,可是我要是查询的话是不是就比较麻烦了。

以日期为例吧,如果你一个月一张表,查询的时候都该有个时间范围吧...

这样就几个表一起查吧,确实是有点麻烦,这世界没有完美的东西...

引用来自#2楼“张宋付”的帖子

你好你用过oracle吗?

现在我的一个应用中老是出现这个怪怪现象

Oracle是10。在window2003运行,默认防火是开着的。

网站应用是J2EE。网站运行两三天Oracle中listen.log就是说TNS- 12547: TNS: 丢失连接。

网站jdbc是采连接池是用DBCP连接当然就是档掉了。

不知是是什么原因。很怪怪。一直找不出是是什么原因引起的。

跟Oracle没关系,是防火墙设置问题,将防火墙的连接设为永不超时。

数据库连接池都是长连接,防火墙默认有连接超时设置,假设应用访问量不大,连接池中某连接长期不被使用,则被防火墙cut掉。

顶部