2012-09-22 75 views
0

我有以下測試爲什麼這些Gradle測試會拋出異常?

answer = Author.withCriteria { 
      books { 
       gt 'price', new DetachedCriteria(Book).build { 
        projections { 
         avg 'price' 
        } 
       } 
      } 
     } 

assert answer.size() == 1 

的IntelliJ IDEA沒有例外執行此測試。如果我運行gradle build這個測試會出現org.hibernate.exception.SQLGrammarException: could not execute query異常。

的IntelliJ生成SQL語句:
select this_.id as id2_1_, this_.version as version2_1_, this_.age as age2_1_, this_.email as email2_1_, this_.first_name as first5_2_1_, this_.home_page as home6_2_1_, this_.last_name as last7_2_1_, this_.login as login2_1_, this_.salary as salary2_1_, this_.sex as sex2_1_, (SELECT count(*) FROM BOOK b WHERE b.author_id = this_.id) as formula0_1_, books_alia1_.id as id1_0_, books_alia1_.version as version1_0_, books_alia1_.author_id as author3_1_0_, books_alia1_.date_created as date4_1_0_, books_alia1_.last_updated as last5_1_0_, books_alia1_.price as price1_0_, books_alia1_.title as title1_0_ from author this_ inner join book books_alia1_ on this_.id=books_alia1_.author_id where (books_alia1_.price > (select avg(cast(this_.price as double)) as y0_ from book this_))

搖籃SQL:
select this_.id as id2_1_, this_.version as version2_1_, this_.age as age2_1_, this_.email as email2_1_, this_.first_name as first5_2_1_, this_.home_page as home6_2_1_, this_.last_name as last7_2_1_, this_.login as login2_1_, this_.salary as salary2_1_, this_.sex as sex2_1_, (SELECT count(*) FROM BOOK b WHERE b.author_id = this_.id) as formula0_1_, books_alia1_.id as id0_0_, books_alia1_.version as version0_0_, books_alia1_.author_id as author3_0_0_, books_alia1_.date_created as date4_0_0_, books_alia1_.last_updated as last5_0_0_, books_alia1_.price as price0_0_, books_alia1_.title as title0_0_ from author this_ inner join book books_alia1_ on this_.id=books_alia1_.author_id where (books_alia1_.price > (select from book this_)

你可以看到avg 'price'部分問題。

問題是一樣的:爲什麼Gradle執行的測試有異常?

PS 的IntelliJ依賴條件是由gradle idea命令

回答

0

安裝只有你可以瞭解一下。也許類路徑是不同的(請記住,IDEA沒有像Gradle那樣嚴格的類路徑分離),或者資源不同(與Gradle相比,IDEA的工作方式不同)。首先要做的是分析堆棧跟蹤。在Gradle中調試測試(-Dtest.debug=true)也可以提供幫助。

相關問題