2010-09-13 92 views
3

我需要在我的应用程序中使用实体框架,并且我已经在Oracle数据库中使用了表分区。使用简单的JDBC,我可以从特定的分区中选择数据。但我不知道我是否可以用hibernate或Eclipse链接(JPA)做同样的事情。如果有人知道如何做到这一点,请让我知道。JPA或休眠与Oracle表分区?

通常在JDBC select语句 - SQL是,

select * from TABLE_NAME partiton(PARTITON_NAME) where FIELD_NAME='PARAMETER_VALUE'; 

我该怎么办与Hibernate的或者JPA一样的吗?

请分享至少一个学习资源的链接。

谢谢!

回答

2

JPA或任何其他ORM框架本身不支持Oracle分区表(至少据我所知)。

有不同的解决方案,虽然,这取决于你的问题的性质:

  • 重构您的类,以便需要在现实生活中的区别对待的数据,属于一个单独的类。有时这称为垂直分区(分区不是跨行而是跨列获得的)。
  • 在下面使用Oracle分区表并使用JPA的原生SQL查询或存储过程。这只是一个可能的解决方案(我没有尝试过)。
  • 使用Hibernate Shards。尽管Hibernate Shards的典型用例不适用于单个数据库,但它向应用程序开发人员呈现了分布式数据库的单一视图。

相关

  1. JPA Performance, Don't Ignore the Database
1

表分区是物理级的数据组织。总之,分区是一个穷人指数。像后者一样,它应该对用户完全透明。允许SQL查询引用整个表,但不允许分区。然后,查询优化器作业决定它是否可以利用某个分区或索引。

+0

你只能丢了这么多的处理能力的单个数据库服务器上。在某些时候,您需要扩展性能,可靠性或成本。分片是一个可能的解决方案。 – Mike 2011-08-16 09:18:56