2011-03-28 72 views
0

我運行criteia與下面的代碼..問題與內部標準加入

Criteria c = session.createCriteria(BasicTransaction.class); 

c.createCriteria("basicTransactionType","basicTransactionType", CriteriaSpecification.INNER_JOIN); 

//c.setFetchMode("basicTransactionType", FetchMode.JOIN); 

c.add(Restrictions.and(Restrictions.in("id", l), 
      Restrictions.eq("isCommon", true))); 

return c.list(); 

其中 「basicTransactionType」 是enum

這正常工作與FetchMode.JOIN但與CriteriaSpecification.INNER_JOIN

如果任何人都能解釋?

+0

你介意讓我們看看由Hibernate生成的SQL和表中數據的相關部分嗎? – 2011-03-28 06:52:33

回答

0

FetchMode.JOIN提供外連接,而CriteriaSpecification.INNER_JOIN指定內連接。這可能與問題有關。

+0

我知道FetchMode.JOIN提供了一個外連接,而CriteriaSpecification.INNER_JOIN指定了一個內連接。 – 2011-03-28 06:40:55

+0

這可能與問題有關。這就是爲什麼我問這個問題,爲什麼它不與Inner Join一起工作。請幫助 – 2011-03-28 06:41:24

+0

@Hardik Mishra - 如果外連接起作用,內連接不起作用,則表示連接列不匹配。這就是我想要看的。 – 2011-03-28 07:14:48