【发布时间】:2012-11-12 20:15:23
【问题描述】:
我在 Oracle (10g) 数据库中有许多表中的三个,如下所示。我正在使用带有 Spring 3.0.2 版的 Hibernate Tools 3.2.1.GA。
- 产品 - 父表
- 颜色 - 父表
-
ProductColour - 连接表 - 分别引用
Colour和Product表中的colourId和prodId
ProductColour 是Product 和Colour 之间的连接表。正如表名所暗示的,Product 和ProductColour 之间存在多对多关系。我认为,数据库中的关系很容易想象,只有这么多信息就很清楚了。因此,我不打算详细探讨这种关系。
Product 中的一个实体(行)与Colour 中的任意数量的实体相关联,Colour 中的一个实体(行)也可以与Product 中的任意数量的实体相关联。
举个例子,我需要计算Product表中可用的行数(关于Hibernate),可以这样做。
Object rowCount = session.createCriteria(Product.class)
.setProjection(Projections.rowCount()).uniqueResult();
如果我需要计算ProductColour 表中可用的行数怎么办?因为它是多对多关系,所以它被映射到 Product 和 Colour 实体类 (POJO) 中,并有各自的 java.util.Set 和 ProductColour 表的直接 POJO 类可用。所以前面的行计数语句在这种情况下似乎不起作用。
有没有一种精确的方法来计算 Hibernate 中这种连接实体的行数?
【问题讨论】:
-
已经看到this问题。
标签: spring hibernate jsp count oracle10g