我在Oracle(10g)數據庫中有許多表中的三個,如下所示。我在Spring 3.0.2版本中使用Hibernate Tools 3.2.1.GA。在休眠中計算多對多關係的行數
- 產品 - 父表
- 顏色 - 父表
- ProductColour - 連接表 - 引用
colourId
和Colour
prodId
分別Product
表
凡ProductColour
是一個連接表Product
和Colour
之間。如表名暗示的那樣,Product
和ProductColour
之間存在多對多關係。我認爲,數據庫中的關係可以很容易地想象出來,而且只有這麼多的信息纔是清楚的。因此,我不會詳細探討這種關係。
一個在Product
實體(行)與在Colour
在Colour
和一個實體(行)的任何數量的實體也可以與在Product
任何數量的實體相關聯的相關聯。
比方說,作爲一個例子,我需要計算在Product
表(關於休眠),這是可以做到像下面這樣可用的行數。
Object rowCount = session.createCriteria(Product.class)
.setProjection(Projections.rowCount()).uniqueResult();
如果我需要計數行的ProductColour
表中提供的號碼是多少?因爲它是一個多對多的關係,所以它被映射到Product
和Colour
實體類(POJO)中,它們分別有java.util.Set
,並且ProductColour
表沒有直接POJO類。所以前面的行計數語句在這種情況下似乎不起作用。
有沒有一種精確的方法來計算Hibernate中這樣一個連接實體的行數?
已經看到[此](http://stackoverflow.com/q/3358843/1391249 ) 題。 – Tiny