gpt4 book ai didi

grails - 域类上的Grails动态查找器方法在插件项目中不可见

转载 作者:行者123 更新时间:2023-12-02 14:09:09 41 4
gpt4 key购买 nike

我的开发环境如下:

Grails版本:1.3.7.RELEASE

请按照以下步骤操作:

  • mkdir GrailsProjects
  • cd GrailsProjects
  • grails create-plugin grails-domain
  • cd grails-domain
  • grails create-domain-class Book
  • cd ..
  • grails create-plugin grails-service
  • cd grails-service
  • grails create-service BookService
  • 添加

    grails.plugin.location."grails-domain" = "../grails-domain"


    BuildConfig.groovy项目
  • grails-service文件的顶部
  • 使用文本编辑器,将文件Book.groovy的内容更改为:

    package grails.domain

    class Book {
    String name

    static constraints = {
    }
    }
  • BookService.groovy文件的内容更改为:

    package grails.service

    import grails.domain.Book

    class BookService {
    static transactional = true

    def someMethod() {
    def book = Book.findByName("Fooled by randomness")
    }
    }

  • 在尝试调用 BookService.someMethod方法时,Grails无法在 findByName上找到 Book方法。 Book.nameBookService.someMethod内部可见,这表明 grails-service插件项目能够解析 grails-domain插件项目中的代码。

    这些步骤与上面列出的完全相同;尚未执行其他步骤。

    这是Grails插件项目的预期行为吗?有没有其他方法可以用Grails分隔域和服务类?

    最佳答案

    谢谢@david。我还没有达到将插件与Web应用程序集成的地步,因此没有对 Controller 进行测试。我只是试图使用单元测试来测试插件的概念。我从创建服务时自动创建的BookService.someMethod调用BookServiceTests

    我发现,必须在单元测试期间模拟域类,才能获得所有GORM功能,包括动态查找器。我在mockDomain(Book, [])中添加了BookServiceTests.setUp以使单元测试正常工作。

    现在对我来说一切正常。

    关于grails - 域类上的Grails动态查找器方法在插件项目中不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8703337/

    41 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com