例如,我需要检索一个表中的几个寄存器,并编辑一个字段,但是用一个循环保存所有内容需要很长时间,是否存在更好的保存方法?这是我怎么做的....
class Table
static mapping = {
table "TABLEEX"
id generator:'sequence', params:[sequence:'TABLEEX_SEQ']
}
// identificacion
String data1
String data2
}
Run Code Online (Sandbox Code Playgroud)
并搜索数据:
def stuff = Table.createCriteria().list{
eq("data1","1")
}
Run Code Online (Sandbox Code Playgroud)
并编辑和保存
stuff.each {
it.data2 = "aaa"
it.save()
}
Run Code Online (Sandbox Code Playgroud) 我有一个Grails项目,需要从一个在不同项目上运行的数据库中检索数据.这个其他项目在不同的平台(Drupal)上运行,并且具有不同的域.我只需要阅读这个数据库中的一些表,并将其保存在我自己的数据源中.
实现这一目标的最佳方法是什么?
我在IntelliJ 14.1中导入了一个Grails项目,当我尝试使用run-app命令运行项目时,我遇到了这个异常:
C:\Program Files\Java\jdk1.8.0_40\bin\java" -Dgrails.home=C:\grails-3.0.0 -Dbase.dir=E:\Aurora\Cloned\funned\src300\papafund-web "-Dtools.jar=C:\Program Files\Java\jdk1.8.0_40\lib\tools.jar" -Dgroovy.starter.conf=C:\grails-3.0.0/conf/groovy-starter.conf -Xmx768M -Xms768M -XX:MaxPermSize=256m -XX:PermSize=256m -Djline.WindowsTerminal.directConsole=false -javaagent:C:\grails-3.0.0\lib\org.springframework\springloaded\jars\springloaded-1.2.3.RELEASE.jar -noverify -Dspringloaded=profile=grails -Didea.launcher.port=7532 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1.1\bin" -Dfile.encoding=windows-1252 -classpath "C:\grails-3.0.0\dist\grails-bootstrap-3.0.0.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 14.1.1\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain org.codehaus.groovy.grails.cli.support.GrailsStarter --main org.codehaus.groovy.grails.cli.GrailsScriptRunner --conf C:\grails-3.0.0/conf/groovy-starter.conf "run-app -plain-output"
Exception in thread "main" java.lang.ClassNotFoundException: org.codehaus.groovy.grails.cli.support.GrailsStarter
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:122)
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256m; support was removed in 8.0
Java HotSpot(TM) 64-Bit Server VM warning: ignoring …
Run Code Online (Sandbox Code Playgroud) 从Grails中的文本字符串中删除所有HTML标签的简单,快速和可靠的方法是什么?
在 Grails 中,您可以使用<f:all bean="beanName" />
. 虽然生成的表单看起来很棒,但我想知道是否有可能在该字段中有一个占位符,以便结果变成这样:
<input type="text" name="question" placeholder="type your question here" />
Run Code Online (Sandbox Code Playgroud)
我尝试在 Grails 中使用属性验证,如下所示:
class Question {
static constraints = {
question(size:5..100, attributes:[placeholder:"type your question here"])
}
}
Run Code Online (Sandbox Code Playgroud)
但它似乎对生成的 HTML 没有任何影响。
我在grails映射中有2个实体
产品和资产
我需要获得产品ID等于x且资产类型等于y的资产
我试过了
Asset.findByProductIdAndAssetType(productId, assetType)
Run Code Online (Sandbox Code Playgroud)
但不起作用
独特的解决方案是
按ID加载产品,按产品加载查找
def product = Product.findById(productId)
Asset.findByProductAndAssetType(product, assetType)
Run Code Online (Sandbox Code Playgroud)
有没有办法只使用productId加载资产?
我正在开发一个 cli 应用程序,它可以接受一些选项:--info
, --debug
, --trace
。我想使用参数来设置整个应用程序的日志记录级别。是否有捷径可寻?这是我到目前为止所尝试过的:
LogLevel level;
if(info) {
level = LogLevel.INFO;
} else if (debug) {
level = LogLevel.DEBUG;
} else if (trace) {
level = LogLevel.TRACE;
} else {
level = LogLevel.WARN;
}
loggingSystem.setLogLevel(Logger.ROOT_LOGGER_NAME, level);
Run Code Online (Sandbox Code Playgroud)
loggingSystem
被注入到类中。
@Inject
private LoggingSystem loggingSystem;
Run Code Online (Sandbox Code Playgroud)