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