在圣杯中
如何找到一对多关系中的所有孩子,例如
class Employee {
static hasMany = [ subordinates: Employee ]
static belongsTo = [ manager: Employee ]
}
使用单个管理器,如何获得所有下属的下属(如遍历对象图)?如果您不想修改域,递归闭包可以工作。否则,您可以向Employee域类添加一个临时属性,如本例中的allsubsiders:
class Employee {
S
我遇到了这样的情况:
-具有多个角色和belongsTo角色的类用户
-使用hasMans用户初始化角色
如何获取属于用户的角色,对象用户已给定,
如何在多对多szanario中获取对象
findByX不起作用,它只影响一个表,但我需要一个“find”或其他东西来查找多个表上的对象
有人能帮我吗?如果您有这样一个用户类,请原谅我没有支持英语^ ^:
class User {
String username
static hasMany = [roles: Role]
stati
我正在使用Shiro插件来保护我的grails应用程序安全,我的应用程序已经有了一个用户。使用Shiro插件,我们得到了一个Shiro用户,现在我如何将Shiro用户与我的应用程序的普通用户集成,显示我继续使用关系,还是用户类a现在只能是shiro用户类???查看灵活的插件,它可以实现这一点和更多功能:
查看灵巧插件,该插件可实现以下功能:
Grails Shiro插件自动生成ShiroUser类,作为您可以直接使用的起点,或者,如果您不想使用它,可以通过一个示例来帮助您配置自己的数据模型,使其
标签: Grails
gormhibernate-session
我正在用Grails编写一个多线程应用程序,其他线程需要访问GORM/Hibernate。当他们试图访问GORM时,我得到错误“org.hibernate.HibernateException:没有绑定到线程的hibernate会话,并且配置不允许在此创建非事务会话”
好吧,很公平,有人能告诉我设置线程访问的最佳方法吗?这个错误消息听起来像是您只需要更改一些配置选项,但我感觉,它并不是那么简单…您需要将任何GORM调用放入withTransaction闭包中。下面是一个关于多线程的讨论示例:
就我的一生而言,我似乎无法让关系在Grails映射表上工作。我想加入两个领域,资源和磁带。一个资源可以有许多磁带
如果我使用脚手架运行下面的代码,我会在“字段列表”中得到一个错误“未知列”this_u.caste_id”。如果我试图在映射中定义CASE_id,编译时会出现致命错误
任何明智的Grails向导都能让我走上正确的道路吗?我对这一点还不熟悉,并且已经尝试了我能找到的每一种方法使之有效
//resource definition
package edu.place.project
c
是否有方法将PropertyEditor与特定控制器关联
我可能希望DateTime类有两个PropertyEditor,并希望将它们关联到不同的控制器
或者一个有2个日期字段的域类,一个需要将2010-12-23更改为最新,另一个需要2010-12-23 10:00:01无法与控制器关联PropertyEditorRegistrar对于registerCustomEditor(),只有两个签名:用于整个属性类和属性名称。
第二个签名在Grails1.3.6之前不起作用,这是一个bug。
所以
我有一个Grails服务类,当我的Tomcat应用服务器关闭时,它需要进行一些清理
我在Grails文档中没有看到关于service.stop()或destroy()方法的任何内容,也没有看到实现任何类型的应用程序生命周期侦听器的方法
最好的方法是什么
谢谢 这与服务处理方法不太一样,但我最后做的是用shutdown方法注册一个Springbean,当应用程序停止时调用该方法
首先,创建一个bean类,如grails-app/utils/MyShutdownBean.groovy,如下所示(类名
使用国际插件,是否有合适的方法动态地将单词复数化,或选择属性的复数版本?您可以在i18n消息中使用嵌入式ChoiceFormat。使用中的示例,您可以定义如下内容:
numfiles.message = "There {0,choice,0#are no files|1#is one file|1<are {0,number,integer} files}."
那么在普惠制中:
<g:message code="numfiles.message" args="[numfiles]"
我们已经使用groovy/grails几个月了,发现它是非常好的语言和框架,至少在原型设计方面是如此
唯一经常让我们抓狂的是项目建设时间。
编译由几个小的域类组成的小应用程序所花费的时间与编译一些好的、更严肃的东西所花费的时间一样多
所以,问题是-有没有任何技术和方法可以用来缩短grails项目的构建时间
UPD:
这个问题涉及其中一个方面,这使得grail部署的依赖性解析速度变慢。简而言之,摆脱快照依赖关系。子问题是如何快速检测此类依赖关系?在开发中,您可以尝试在中运行脚本运行程序
或者,在G
标签: Grails
onloadauditaudit-trailaudit-logging
我看到grails审计插件提供了记录onCreate()onUpdate()事件的方法,但我还需要跟踪onLoad()事件
使用插件有没有标准的方法?或者我需要自己实现它?您可以向域类添加onLoad闭包。它将在对象首次从数据库加载时执行
class Foo {
int bar;
def onLoad = {
// onLoad fired
}
}
是从数据库加载域对象时自动触发的onLoad事件。示例:用户登录后。此外,我还看到,默认情况下,当事件发
我需要公开GrailsWeb应用程序的特定URL。但是,我希望它受到OAuth2客户端凭据流(grant_类型)的保护。
准确地说,外部代理将向以下对象发送请求
http://server-url/oauth/token?client_id=clientId&client_secret=clientSecret&grant_type=client_credentials
http://server-url/resource?access_token={access-token
域有4列作为复合id的一部分:
id composite: ['exemptionTermCode', 'exemptionCode', 'exemptionClassification', 'exemptionPayType']
在控制器中,一个对REST服务的丑陋模仿,我有以下代码:
else if (request.method == "PUT" && params.rowid) {
def a = WaiverExemption.find("from WaiverE
我正在尝试使用jason io序列化/反序列化MyClass实例。jason io库有两个类,JsonWriter和JsonReader,分别执行序列化和反序列化。这两个操作都是从Grails控制器调用的
在序列化过程中,会创建一个JSON对象,其中包含类名。反序列化在Class.forName(“…MyClass”)上失败。类名是正确的
我跟踪了这个问题,发现MyClass的类加载器是(java.net)URLClassLoader,而JsonReader类加载器是(org.codehaus.
我正在尝试为我的Grails应用程序编写一个查询,该查询选择与Orange实例“相关”的Apple的所有实例。在这里,“相关”一词是指与Apple实例相关联的Banana的所有实例都与与我们关注的Orange实例相关联的Cherry实例的一些组合相关联。我已经看了这个问题,但是我的问题有点复杂,我不知道如何将给定的答案应用到我的问题上
以下是我正在处理的类:
class Apple {
static hasMany = [ bananas: Banana ]
}
class Banan
标签: Grails
discriminatorgrails-2.0.4
假设我有以下课程:
abstract class Fruit {
String name
static mapping = {
discriminator column: 'type'
}
class Banana extends Fruit {
static mapping = {
discriminator: 'Banana'
}
}
class Apple extends Fruit {
static m
标签: Grails
datasourceintegration-testing
在Grails2.1.x中,我想为集成测试创建一个额外的数据源,以便验证我的服务是否从用户指定的数据源动态地提取数据。目前,我的测试非常简单,例如:
@Test
void "get Action Types by data source name returns all action types"() {
new ActionCache(actionType: 'Action Type 1').test.save()
new ActionCache(actionType: 'Ac
我正在使用Grails1.3.7,在多个控制器中有类似的代码:
def myAction = { MyCommand cmd ->
if (cmd.hasErrors()) {
// return bad request
} else {
someService.callSomeMethod(cmd.someId)
...
}
}
class MyCommand {
Long someId
stat
有没有一种简单的方法可以在Grails中搜索不区分重音的内容?我有一个带有ilike的CreateCriteriaBuilder(用于不区分大小写的搜索),但我需要不区分重音。比如,在像阿ůäü这样的人物身上,忽略重音。当用户提示u时,这些字符应适合搜索
谢谢,
Mateo解决方案在DB级别:
将数据库排序规则设置为utf8\u general\u ci即可完成此任务
排序规则的\u ci后缀表示不区分大小写,实际上也不区分重音
我建议在将其传递给标准之前,使用正则表达式去除所有重音符号。问题
如何正确处理已取消的文件下载?所讨论的文件是一个相当大的zip文件,需要很长时间才能构建,因此用户有足够的时间点击下载对话框窗口上的取消按钮
当它发生时,会发生一个严重的异常(见下文),这是意料之中的,因为客户端破坏了管道。但是如何清理呢?哪里/什么是捕获异常的正确方法,这样tomcat日志就不会被它们弄乱
多谢各位
下载代码本身就是教科书中的标准代码:
import java.util.zip.ZipEntry
import java.util.zip.ZipOutputStream
def
我在Grails用户列表上问了这个问题,但没有得到回应,所以我将在这里重新表述。我是Grails插件()的作者,该插件在BuildConfig.groovy中定义了两个外部依赖项
当插件安装在新的Grails2.2.x应用程序中时,应用程序中不会解析外部依赖项。运行它时,我在插件依赖项中定义的类的导入语句中出现“无法解析类”错误
插件用户应该能够在应用程序的BuildConfig.groovy中插入插件依赖项,并自动解析这两个外部依赖项。grails.project.dependency.res
它只列出了美元、澳元等货币的简称。有没有办法在下拉控件中也包含长名称?看,您可以尝试:
<g:currencySelect from="${['Euro','US Dollar','UK Pound','Swiss Franc']}"
keys=${['EUR','USD','GBP','CHF']}"/>
可以谢谢你的回复。还有一个疑问。此标记只显示少数货币。如何获得这个塔加的所有货币。除此之外,如果我想要其他货币,我必须做什么?将它添加到列
在Grails应用程序中,我试图找出何时使用视图以及何时使用gsp模板。有什么明显的原因吗?还是说它只是为了重用?基本上,模板是视图的一个(可重用)部分。用于将视图拆分为逻辑部分和/或重用来自不同视图的相同代码
因此,如果要呈现整个页面,请使用视图。如果您只需要一小部分,请使用模板
查看文档查看视图和模板-可重用性和共享是模板的主要优点,您可以使用较小的模板对页面进行模块化,也可以在所有页面上呈现通用模板。
如果我想使用Git Hub的Grails插件。我是否只是下载zip文件并将其放在本地maven存储库中?我在一个防火墙后面,它不允许我仅仅解决依赖关系。您可以获取源代码并运行maven install,使其在本地maven存储库中可用,然后在BuildConfig.groovy的plugins块中声明依赖项,将下载的zip文件将是插件的源文件。您必须提取zip文件,转到插件的根目录,然后运行grailsmaven安装(从releaseplugin开始),如果您有一个安装程序,它将在本地maven
今天,当我自定义控制器的列表方法时,在list.gsp页面中遇到问题。我的问题是所有记录都显示在一个页面上。
例如,假设我有15条记录,那么所有15条记录都会显示在第一页,也会显示在页脚的下一个链接中。当点击它时,所有页面都会显示相同的15条记录
我需要自定义代码,因为我需要运行查询,并根据查询结果在列表页面上显示记录
def query = "from Book where isAvailable = 'true'"
def bookInstanceList = Book.fi
我正在尝试从grails应用程序发送电子邮件。我使用gmail尝试了推荐的设置,效果很好。我成功地发送了邮件。但我想动态覆盖用户名和密码。我不知道该怎么做。有人能帮忙吗
grails {
mail {
host = "smtp.gmail.com"
port = 465
username = "faruq@gmail.com" // Want to change dynamically like variable ${bran
标签: Grails
datepickergrails-controller
默认情况下,我通过g:datePicker将日期发送为东部时间。
如何根据所选时区传递日期
请提供帮助。Grails datepicker标记不会也不应该处理您的时区。它只是日期的表示形式,接受日期对象。也就是说,无论date对象的时区是什么,它都将是那个时区
在客户端有许多库来处理时区,例如,和许多其他库。在服务器端,您有诸如等库。我相信如果你在谷歌上搜索,你会找到更多的选择
只需处理时区转换,那么表示层就可以是Grails datepicker或bootstrap datepicker或jq
要链接控制器/动作,g:createLink很有用。但是如果资源像javascript一样是静态的,那么如何创建动态链接呢?由于这些页面在tomcat容器中没有被解析为gsp页面,是否有任何解决方案可以代替静态指定。我认为您正在寻找的是:
// generates "/shop/css/main.css"
<g:resource dir="css" file="main.css" />
// generates "http://portal.mygreatsite.com/css/
在我们的Spock测试中,我们希望检查软件中是否选择了正确的路径。但是我们不想测试被调用的方法的功能(这在单独的测试中完成)
此测试总是失败,因为调用了innerMethod中的代码,并且计算了innerMethod中方法调用的调用,而不是方法innerMethod
| Too few invocations for:
1 * service.innerMethod(*_) (0 invocations)
Unmatched invocations (ordered by sim
嗨,我正在使用geb运行我的功能测试。
我能够在本地计算机上正确运行测试。但当我将应用程序部署到服务器时。功能测试的构建失败
这是我的控制台输出
|Running 10 spock tests... 1 of 10
Failure: |
sign in with voucher
|
geb.driver.DriverCreationException: failed to create driver from callback 'script14007213321291157436758$_
我的控制器中有一个方法重定向到另一个视图未渲染的方法。被重定向到的方法确实有一个具有该方法名称的视图,但由于某种原因,在登录到下一个视图后点击submit后,该视图不会呈现。我知道正在调用与视图关联的方法,因为该方法中的其他代码正在执行,只是它的视图没有呈现。如果我手动导航到查看URL,它会在浏览器中呈现良好效果。有什么想法吗?解决这一问题的一种方法可能是使用jQuery读取JSON响应并从中构造重定向URL。那么“视图未呈现”的实际结果是什么呢?你的控制器动作是什么样子的?我输入用户名和密码,
我的要求是在每次点击服务器时更新数据库中的用户会话记录。
所以我已经为此编写了过滤器
allExceptLogin(controller: 'login', invert: true){
before = {
}
}
这很好,因为它进入了过滤器中,我可以在其中更新记录,但问题是,如果我在一次单击中有超过1个方法调用,那么它会进入这个过滤器很多次
例如,如果我点击一个页面,从同一个或不同的控制器调用4种不同的方法,那么它将进入该过滤器4次,最终将更新记录4次
我需要一些条件,说明
为什么这不起作用
void test_get_configurations_whose_descriptors_are_in_list_or_null() {
DeviceConfiguration noDescriptors = DeviceConfiguration(setting1: 1)
DeviceConfiguration hondaCivicConfig = DeviceConfiguration(setting1: 2)
DeviceConfigurati
我已经在我的grails项目中安装了elasticsearch插件,现在我希望无论何时在生产环境中构建应用程序,elasticsearch数据都应该自动重新编制索引。有办法做到这一点吗 根据标准,当应用程序启动时,您应该能够重新索引grails app/conf/BootStrap.groovy中的所有内容
例如,类似这样的内容:
// grails-app/conf/BootStrap.groovy
class BootStrap {
def elasticSearchServ
感谢@dmahapatro,我在这里获得了春季开机情况下ssl的急救:
所以我生成了一个密钥库:
keytool -genkey -keyalg RSA -alias rawi -keystore keystore.jks -storepass pass.pass -validity 365 -keysize 2048 -storetype JKS
keytool -list -keystore grails-app/conf/keystore.jks
Enter keystore passw
我想创建一对多关联,并可能将关联设置为null
例如:
class Basket {
Long id
String name
static hasMany = [
products: ProductOrdered,
menus: MenuOrdered
]
static constraints = {
products nullable: true
menus nulla
我想使一个属性在GORM中不可变。因此,一旦设置好,就无法更改。例如,产品sku或个人的社会保险号。推荐的方法是什么?这取决于您想要的不可变级别。如果您只是不想将更改持久化到数据库,那么使用updateable:false映射就可以了。报告对此作了进一步解释
例如:
class Product {
String sku
...
static mapping = {
sku updateable: false
}
...
}
这取决于您想要的不可变级别。如果您只是不想
我一直在尝试在登录后更改用户区域设置(我使用SpringSecurity)
我尝试在Spring Security的成功事件处理程序(onInteractiveAuthenticationSuccessEvent)中更改区域设置,并创建自己的localeResolver并在resources.groovy上注册它
除了主页之外,它似乎对所有页面都很有效
这是MyLocaleResolver
class MyLocaleResolver implements LocaleResolver {
默认情况下,如何配置Grails/GORM以获取所有一对一和多对一关系
默认情况下,我不想急于获取多对多或多对一关系;那些应该仍然是懒惰的
我已经看到了如何为单个关系指定急切获取,但没有说明如何将其作为一对一和多对一关系的默认值 fetchMode是您想要的吗?虽然您需要为每个关系指定它,但我不确定是否有这样的默认配置,它将应用于每个关系,包括将来的更改。我不知道静态fetchMode=[xyz:'eager']和静态映射{xyz lazy:false}之间的区别。你…吗?无论哪种方式,我都希望
我在本地存储库中克隆的Grails应用程序所在的位置。我运行这个命令来运行,它说:
FAILURE: Build failed with an exception.
* What went wrong:
Task 'bootRun' not found in root project 'vagnkort'.
* Try:
Run gradle tasks to get a list of available tasks. Run with --stacktrace option to get t
我使用spring安全插件进行授权。现在我想使用jasper插件生成报告。但是,不是生成它显示的报告
抱歉,您无权查看此页面。错误
Config.groovy:
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
'/' : ['permitAll'],
'/index' : ['permitAll'],
'/index.gsp'
我试图找到关于如何将本地/非maven jar文件添加到Grails3.x项目的文档和代码示例
我发现了单独的线程,但这仅适用于Grails2.3,文件结构和配置在3.x中经历了一次大的检修
任何帮助和(特别是)代码示例都将非常棒!jar位于本地项目目录中,我打算用.war打包以进行部署
此外,一旦我添加了依赖项,我是否应该能够从控制器和服务文件中调用它的方法?或者我需要把它们也包括在这些中吗
谢谢 Grails3使用Gradle,因此Grails没有关于包含本地jar的任何特定内容。只需将文件
我有一个小批量上传工作,我迭代抛出一个CSV文件,创建对象并使用grails gorm保存它们。如果csv文件中的某条记录出现任何故障,我将跳过该记录并转到下一条。我发现如果不使用withNewTransaction将我的保存包装到新事务中,就无法保存任何对象。我想这是解决真正问题的一种手段。我想知道是否有人能帮助我了解这里发生了什么
控制器
def uploadFile() {
def division = params.division;
userService
标签: Grails
runtime-errorruntimeexception
我在运行grails应用程序时遇到“java.lang.RuntimeException:重新加载代理通过异常退出”错误。以前它工作得很好。突然我犯了这个错误。我无法运行应用程序
完整的堆栈跟踪如下所示
|Loading Grails 2.4.0
|Configuring classpath
.
|Environment set to development
.................................
|Packaging Grails application
..
|C
我正在处理我的脚手架模板,更具体地说是create.gsp文件。我想获取类中定义的属性。我在网上看到了很多关于如何做到这一点的帖子,但似乎没有一篇有效
尝试了以下方法():
我也尝试过这种方法:
<% import grails.persistence.Event %>
<%
excludedProps = Event.allEvents.toList() << 'version' << 'dateCreated' << 'lastUp
标签: Grails
grails-domain-class
我有一个域类,它属于另外两个域类,并进行了多次验证
假设域类图书属于作者。在测试Book domain类时,我只想访问Author对象,而不必为Author创建所有复杂的验证。这可能吗?在保存作者的实例时,只需传递验证:false
Author authorInstance = new Author()
authorInstance.save(validate: false)
这将阻止在Grails级别进行验证,但不确定写入数据库级别时验证的行为。这是解决此问题的一个很好的解决方案,它允许您创
我拥有以下域名:
用户有一个角色组有多个角色
示例:
角色组:管理员、专业人员、客户
角色:角色行动1、角色行动2
如何检查用户是否有注释为@Secured的角色组
我需要检查用户是否包含角色组的所有角色
用户类别:
class User implements Serializable {
private static final long serialVersionUID = 1
static constraints = {
password blank
如何将任意Groovy映射/列表转换为Groovy提供的配置风格DSL语法?
例如:
def config = [
'test': 'lalala',
'nestedObject': [
foo1: 'foo1 val',
foo2: 'foo2 val',
nested2: [
anInt: 5,
anArray: ['a', 'b', 'c'],
anInt
标签: Grails
gormgrails-3.1audit-logging
插入并更新工作,但我无法使用.delete()删除实体;
但是当评论static stampable=true时,请删除作品。
处理删除操作时发生以下错误:
groovy.lang.MissingPropertyException:没有这样的属性:的状态
类:org.hibernate.event.spi.PreDeleteEvent
尝试使用beforeDelete或afterDeleteinstead@ricardogobbo不起作用
package products
import fis
我正在使用安全插件运行Grails3(来自gradle文件的条目)
编译组:'org.grails.plugins',名称:'spring security core',
版本:“3.2.3”
然后运行:
s2-quickstart mydomain User Role
现在,安全性正在应用于该站点
现在我需要更改login.gsp页面,但它不在视图下
我必须运行另一个命令来生成它(和控制器)
谢谢
我必须运行另一个命令来生成它(和控制器)
不,如果你愿意,你可以,但是如果你愿意,你也可以自
我很难让普罗米修斯安装我的grails应用程序。我已经把它完全设置好了,并且与其他出口商合作,只是不知道实际的应用程序应该放在哪里
我正在尝试使用此处找到的jmx导出器:
按照页面上的说明,导出器似乎被附加到一个.jar文件。但据我所知,grails从未转换成.jar文件?我知道grails在开发环境中运行时和在生产环境中编译成.war文件时是有区别的。前端和后端是否需要分离?如有任何信息,将不胜感激
但据我所知,grails从未转换成.jar文件
您可以决定是否将Grails应用程序部署为.j
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 384 页