更新:我發現了這個問題。我需要如下保存「火車」域名。在哪裏查詢Grails不返回記錄
train.save(沖洗:真)
我需要提供一個齊平,也是如此。
我編輯了包含請求的信息。謝謝。
我有兩個域類如下。
class Train {
String name
static hasMany = [passengers: Person]
. . .
}
class Person {
String firstName
String lastName
. . .
}
我想使用where查詢來查找給定名字的乘客。這是完整的集成測試代碼。第一個查詢,尋找乘客,不起作用。第二個,按名字尋找火車,起作用。
我正在使用Grails 2.2.1,並在我的IDE,Groovy/Grails Tool Suite 3.2中運行測試。我不是引導數據,而是在測試中添加數據。請參閱下面的testSomething代碼。
這裏是測試代碼。
import grails.converters.*
import static org.junit.Assert.*
import org.junit.*
class TrainIntegrationTests {
@Before
void setUp() {
// Setup logic here
}
@After
void tearDown() {
// Tear down logic here
}
@Test
void testSomething() {
def person1 = new Person()
person1.firstName = "George"
person1.lastName = "Romero"
person1.save();
println "person1.id: " + person1.id
def person2 = new Person()
person2.firstName = "Jane"
person2.lastName = "Smith"
person2.save();
def train = new Train()
train.name = "This Train"
train.addToPassengers(person1)
train.addToPassengers(person2)
train.save()
// This prints out 2.
println "passengers size" + train.passengers.size()
// This does not work. No results are returned.
def query = Train.where {
passengers {
firstName == 'George'
}
}
def qResults = query.list()
// No results
println "qResults: " + qResults
// This does work. Results returned.
def query1 = Train.where {
name == 'This Train'
}
def qResults1 = query1.list()
// Returns results.
println "qResults1: " + qResults1
// Don't really care about assert results yet.
// Just looking at the print outs and seeing how this all works.
assert true
}
}
我在乘客查詢中丟失了什麼?
您是否爲您的測試引導測試數據?你確定數據在那裏嗎? – Gregg
您使用的是哪個版本的grails? –
將集成測試也添加到問題中。 – dmahapatro