问题标签 [grails-3.3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rest - Grails REST POST 失败,元素具有备用标识符列
这是我正在从事的一个真实项目的简化示例。我有以下域。
很简单,一个电话,一个电话类型。
PhoneType 使用 cn 的备用 id 列
我生成默认的 REST 控制器grails generate-all PhoneType PhoneNumber
我正在使用一个休息档案项目。我可以创建一个 PhoneType 就好了。
问题是我无法使用 REST 创建具有此 PhoneType 的 PhoneNumber。如果我不指定备用 ID(使用默认的 'id' 列),我可以。
虽然这有效
我想知道这是否应该工作并且是框架中的一个错误,或者是否需要一些额外的配置才能在没有“id”作为标识符的 grails 中使用 REST 资源。
在此先感谢您的任何指点。
grails - 具有 3 个或更多数据源的 GORM 集成测试
当您尝试与超过 2 个数据源交互时,我的集成测试MultipleDbsITSpec失败并出现错误“org.hibernate.HibernateException: No Session found for current thread” 。运行应用程序时不会出现此问题,请参阅BootStrap.groovy。
设置它的正确方法是什么?
我想避免我发现需要用withNewTransaction闭包包装 GORM 查询的解决方法。这会破坏代码的可读性。
环境:
数据库配置:
失败的测试:
通过测试:
grails - 使用 Tomcat 8 部署时无法解析名称为“alive”的视图
当部署到我们的生产服务器(AWS Linux、Tomcat 8、Grails 3.3.3、Java 1.8)时,应用程序找不到视图。在本地运行时(grails prod run-app、grails run-app、Java 1.8)没有问题。
查看(alive.gson)
网址映射
网址
http://localhost:8080/cf/apistatus(正常工作)
https://my.domain.com/cf/apistatus(抛出异常 - javax.servlet.ServletException:无法解析 servlet 中名称为“alive”的视图名称为“grailsDispatcherServlet”)
更新
我已经根据这个问题配置了应用程序,但没有成功
grails - 如何将数据永久保存在grails中?
每次我按调试项目时,我的数据库中的数据都消失了。但如果我只按运行项目,它仍然可以。有人可以告诉我我的代码有什么问题吗?我调试或运行项目时没有出现错误。
这是控制器
这是在 application.yml 中,我使用了 8090 端口
这是在 build.gradle 里面,我已经把 jdbc 放到了 postgresql
spring - 如何将 Spring AOP 与 Grails 3 集成
我被困在尝试在 grails 3 中集成用于登录的 spring aop。我可以在服务类或使用 log.info 的控制器中使用日志记录,我想在方面类中使用它。
这是我的 application.yml,我在其中设置了 spring aop 的配置。
grails - 如何在 Grails 3 中访问普通 groovy 类中的数据源?
我正在尝试从普通的 Groovy 类(无服务)中运行 sql-code。在 Grails 2 中,我可以通过以下方式访问数据源:
迁移到 Grails 3.3.8 后,代码不再工作。Grails 3.3.8 中的正确方法是什么?
jpa - 在grails 3数据服务中查询与JPA QL的向后关联,对象上的MissingMethodException executeQuery?
在收集作者及其书籍的数据库中,我们将书籍添加Author
为Book
实例。
但是,Author
可能有尚未添加到数据库的书籍。Author
这就是为什么我们有一个外部理智计数器,告诉我们一个人实际出版了多少本书。如果numberOfKnownBooks
等于Book
数据库中的实例数,那么我们认为我们有一个Author
完整的参考书目。
获取所有Authors
参考书目完整的 SQL 查询将在 SQL 中这样编写:
这里的困难在于连接指向相反的方向,并且正常示例通常显示如何创建查询以获取Books
与 连接Authors
,而不是相反。
我在 stackoverflow 中找到了一些文章,解释了如何在普通 JPQL 中执行类似的操作(减去 group by ... 有复杂性),@Query
但是在 GORM 6.1+ 中的数据服务中的注释所期望的 DSL 中执行此操作,我得到一个异常,发生在 AST 生成的代码的地牢中,说它executeQuery
在java.lang.Object
. 这是一个合理的投诉,但我不知道为什么会这样。不幸的是,无法逐步调试此代码。
这是我的数据服务:
更新:根据 jeff 的说明删除了无用的注释 @GrailsCompileStatic 和 @Transactional
完整解决方案,使用正确的 JPQL 查询:
grails - Postgresql 和 Grails 3.3.8 的默认字符串大小似乎是 20 个字符
我的字符串列默认为 20 个字符。所有文档都建议默认值为 255。如何在不更改每一列的情况下设置它。我正在使用 Grails 3.3.8 和 Postgresql 9.3。
创建 20 个字符列如果我添加一个映射:
我得到了正确的 255 个字符,但是,grails 验证字符串失败:
Field error in object 'dop_etc.DbConnection' on field 'url': rejected value [localhost:5432/rbc48_fantasy]; codes [dop_etc.DbConnection.url.size.error.dop_etc.DbConnection.url,dop_etc.DbConnection.url.size.error.url,dop_etc.DbConnection.url.size.error.java.lang.String...
似乎在某处设置了默认尺寸,但我似乎找不到它。感谢您的回复。
grails - 在 Groovy Source 文件夹中使用 Grails 3 服务的最佳方法是什么?
如问题所述,在 groovy 资源中使用 grails 服务的最佳方式是什么?我目前正在使用此代码:
有一个更好的方法吗?
编辑/解决方案: 我使用 Spring Dependency Injection 解决了它(使用 @Component 注释类并使用 Application.groovy 文件中的 @ComponentScan Annotation 注册包)
mongodb - Grails使用spring security更新嵌入对象但没有编码密码
我正在尝试更新嵌入的对象,但是当对象更新时,密码用户再次被编码。
我想将 Card 对象更新为 User 类。UserService 应该只更新卡对象,但它正在更新密码对象。
UserPasswordEncoderListener 是 grails spring 安全核心插件的默认值。
使用:
- grailsVersion=3.3.8
- grailsWrapperVersion=1.0.0
- gormVersion=6.1.10.RELEASE
- gradleWrapperVersion=3.5
- mongodb:6.1.6
任何想法?或者我做错了什么?处理嵌入对象的最佳方法是什么?
用户类
客户类
卡类
用户服务类
用户密码编码器监听器