GORM在Grails之外冬眠
从一个演示如何在Grails之外使用GORM的示例开始,我尝试使用动态查找器,以便可以根据特定域对象的一个属性查找它。在本例中,groovy中有一个person对象:GORM在Grails之外冬眠,grails,dynamic-finders,Grails,Dynamic Finders,从一个演示如何在Grails之外使用GORM的示例开始,我尝试使用动态查找器,以便可以根据特定域对象的一个属性查找它。在本例中,groovy中有一个person对象: package domain import grails.gorm.annotation.Entity import org.grails.datastore.gorm.GormEntity @Entity class Person implements GormEntity<Person> { Stri
package domain
import grails.gorm.annotation.Entity
import org.grails.datastore.gorm.GormEntity
@Entity
class Person implements GormEntity<Person> {
String firstName
String lastName
static mapping = {
firstName blank: false
lastName blank: false
}
}
我在运行测试时遇到此错误:
domain.PersonSpec > person can be found by last name FAILED
groovy.lang.MissingMethodException at PersonSpec.groovy:32
上面的测试方法成功地创建并保存了个人记录,因此GORM功能的某些方面正在发挥作用。但是动态查找器功能在运行时没有被正确应用,即使编译器认为一切看起来都很好
我的整个身材是这样的:
apply plugin: 'groovy'
repositories {
jcenter()
}
dependencies {
compile "org.hibernate:hibernate-validator:5.3.4.Final"
compile "org.grails:grails-datastore-gorm-hibernate5:7.0.0.RELEASE"
runtime "com.h2database:h2:1.4.192"
runtime "org.apache.tomcat:tomcat-jdbc:8.5.0"
runtime "org.apache.tomcat.embed:tomcat-embed-logging-log4j:8.5.0"
runtime "org.slf4j:slf4j-api:1.7.10"
testCompile 'org.spockframework:spock-core:1.1-groovy-2.4'
}
有人知道我遗漏了什么吗?所以我已经为此挣扎了几天,你难道不知道我一发布这个问题,我就几乎立刻明白了吗。很简单——我需要在Person对象上静态使用findByLastName方法,而不是Person实例。在PersonSpec中工作的代码现在如下所示:
@Rollback
def "person can be found by last name"() {
when:
def p = new Person(firstName: 'Scott', lastName: 'Ericsson')
p.save(flush: true)
def foundPerson = Person.findByLastName('Ericsson')
then:
foundPerson.firstName == 'Scott'
}
我已经为此挣扎了好几天了,你难道不知道我一发布这个问题,我就马上明白了吗。很简单——我需要在Person对象上静态使用findByLastName方法,而不是Person实例。在PersonSpec中工作的代码现在如下所示:
@Rollback
def "person can be found by last name"() {
when:
def p = new Person(firstName: 'Scott', lastName: 'Ericsson')
p.save(flush: true)
def foundPerson = Person.findByLastName('Ericsson')
then:
foundPerson.firstName == 'Scott'
}
添加“testCompile”org.grails:grails数据存储gorm-test:7.0.0.RELEASE“是否会有所改进?至少对于grails来说,需要一些专用的测试库。添加“testCompile”org.grails:grails数据存储gorm test:7.0.0.RELEASE是否会有所改进?至少对于grails,需要一些专用的测试库。