更新:我发现了问题。我需要保存“火车”域名如下。
train.save(flush:true)
我也需要提供同花顺。
我编辑了包含所要求的信息。感谢。
我有两个域类如下。
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
}
}
乘客查询中缺少什么?
答案 0 :(得分:0)
所有
我发现了问题。我也需要用同花顺来保存。
而不是。 。train.save()
我用过。 。
train.save(flush: true)
此后查询开始工作。