小编ata*_*lor的帖子

在Grails Criteria中使用groupProperty和countDistinct

我正在使用Grails 1.2.4.我想知道如何通过"countDistinct"(降序)和在投影中使用groupProperty进行排序.

这是我的域名:

class Transaction {

    static belongsTo = [ customer : Customer, product : Product ]

    Date transactionDate = new Date()

    static constraints = {
        transactionDate(blank:false)    
    }

}

class Product {

    String productCode

    static constraints = {
        productCode(blank:false)    
    }
}
Run Code Online (Sandbox Code Playgroud)

在MySQL术语中,这就是我想要的:

select 
    product_id,
    count(product_id)
from
    transaction
group by
    product_id
order by
    count(product_id) desc
Run Code Online (Sandbox Code Playgroud)

总的来说,我想获得一个产品列表(或只是产品ID),按产品的交易数量(降序)排序

这是我的猜测:

def c = Transaction.createCriteria() def transactions = c.list {
    projections {
        groupProperty("product")
        countDistinct("product")
    }
    maxResults(pageBlock)
    firstResult(pageIndex) }

def products = transactions.collect { it[0] } …
Run Code Online (Sandbox Code Playgroud)

grails criteria grails-orm

5
推荐指数
1
解决办法
1万
查看次数

如何访问grails控制器中的User对象

我正在使用spring security,我需要在控制器中获取User域对象.

如果我打电话SpringSecurityService.getPrincipal(),我会找回一个类型的对象org.codehaus.groovy.grails.plugins.springsecurity.GrailsUser.但是,我正在寻找的是我在我Config.groovy喜欢的用户域对象:

grails.plugins.springsecurity.userLookup.userDomainClassName = 'project.auth.User'
Run Code Online (Sandbox Code Playgroud)

我怎样才能最好地获取用户域对象?

grails spring-security

5
推荐指数
1
解决办法
3038
查看次数

metaClass.methods和metaClass.metaMethods有什么区别?

如果我向一个类添加一个元方法,我希望它会出现在Class.metaClass.metaMethods.但事实似乎并非如此.特别是,如果我这样做:

class Example {
    def realFoo() { "foo" }

}
Example.metaClass.metaFoo = { -> "foo" }

def reals = Example.metaClass.methods*.name.grep{it.contains("Foo")}
def metas = Example.metaClass.metaMethods*.name.grep{it.contains("Foo")}

println "reals = $reals, metas = $metas"
Run Code Online (Sandbox Code Playgroud)

我希望输出reals = [realFoo], metas = [metaFoo],但实际上我得到了reals = [realFoo, metaFoo], metas = [].

看起来新的元方法存储在方法中,而不是metaMethods.那么,metaClass.methods和之间有什么区别metaClass.metaMethods

groovy metaprogramming

5
推荐指数
1
解决办法
1241
查看次数

在内存中运行时查看grails架构?

我想查看默认hsqldb内存数据库的grails模式,但是当我使用SquirrelSQL或DbVisualizer连接到内存数据库时userid: sa, password: (nothing),我只看到两个模式:

INFORMATION_SCHEMA
PUBLIC
Run Code Online (Sandbox Code Playgroud)

并且都不包含我的域表.这是怎么回事?

sql database grails groovy hsqldb

5
推荐指数
1
解决办法
1702
查看次数

grails搜索结果的分页

我有域"country",在list.gsp上我有搜索块和输入字段.第一个问题是,当我尝试在我的列表上使用paginate时总是显示所有结果,在这种情况下我设置了解决方案并且我只发送了10个值用于显示(如果你知道另一个解决方案请告诉我).我的搜索看起来像这样

    def search = {
       if(query){
           def srchResults = searchableService.search(query, params)

           def result =  Country.executeQuery("select  new map(a.name as name, a.datacenter as datacenter) from Country a where a.name like '%"+ params.q + "%'")

           if (params.offset)
           {
               x = params.offset.toInteger()
               y = Math.min(params.offset.toInteger()+9, result.size()-1)
           } else
            {
            x = 0
            size = result.size() - 1
            y = Math.min(size, 9)
             }     
           def q=params.q

          [countryInstanceList: result.getAt(x .. y), countryInstanceTotal:result.size(), q:params.q]

       }else{
           redirect(action: "list")
       }
   }
Run Code Online (Sandbox Code Playgroud)

现在我有另一个问题,当我按下一页然后我的搜索字段中的参数是清理,结果为空.我试图将字段值作为参数发送,但我做错了.

我的搜索页面如下:

<g:form action="search">
            <div class="search" >
                Search Country …
Run Code Online (Sandbox Code Playgroud)

grails pagination

5
推荐指数
1
解决办法
2674
查看次数

仅在覆盖检查通过时才能成功构建grails项目

我正在处理grails应用程序.我们使用cobertura生成代码覆盖率报告.现在我想修改grails项目,如果代码覆盖率小于90%,则构建应该失败.我怎样才能在grails中实现这一目标?

grails code-coverage cobertura

5
推荐指数
1
解决办法
349
查看次数

如何做Diffie Hellman密钥生成并在Java中检索原始密钥字节

我正在java中为现有程序编写测试工具.作为其中的一部分,我需要生成一个Diffie Hellman密钥对,并以其原始(即未编码的字节)形式将公钥传递给另一个程序.

我可以使用以下代码成功使用密钥对:

KeyPairGenerator kpg = KeyPairGenerator.getInstance("DiffieHellman");
kpg.initialize(512);
KeyPair dkp = kpg.generateKeyPair();
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法检索键的原始字节值:-(调用dkp.getPublic().getEncoded()返回一个字节数组,但它的键是x509编码格式.

我有三种可能的前进方式:

  1. 找到一些以原始形式从上面获取关键数据的方法.
  2. 将密钥的x509编码解码为其原始格式
  3. 以允许访问原始密钥的不同方式生成密钥

但我不知道如何去做任何一个(哪个会变得最好)?

任何帮助或建议将不胜感激!

java cryptography public-key-encryption diffie-hellman

5
推荐指数
1
解决办法
2239
查看次数

在 Grails 2.3.1 中执行“run-app”时如何将 Java 系统属性传递给 JVM

在 Grails 2.3.1 中执行“run-app”时如何将 Java 系统属性传递给 JVM?运行“grailsw run-app”时,会启动两个 JVM。Grails 控制台和运行我的 Grails 应用程序的 tomcat 容器。我曾尝试将它们附加在 Grails 目标命令之间和前面。我有一种感觉,我需要修改一个脚本。

501 640 622 0 9:39AM ttys000 1:20.20 /Library/Java/Home/bin/java -server -Xmx768M -Xms64M -XX:PermSize=32m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 ... --conf /Users/hbrien/Software/grails-2.3.1/conf/groovy-starter.conf --classpath run-app

501 661 640 0 9:40AM ttys000 1:50.24 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java -Xmx1024M -Xms1024M -XX:MaxPermSizeDgrails=25 true -Dgrails.build.execution.context=/private/var/folder -Djdk.reflect.allowGetCallerClass=true -Dspringloaded=profile=grails;cacheDir=/Users/hbrien/.grails/2.3.1 org.grails.plugins。 tomcat.fork.ForkedTomcatServer

grails jvm-arguments grails-2.3

5
推荐指数
1
解决办法
2065
查看次数

Groovy - 将日期字符串转换为格式化日期

好的,我正在尝试从以下格式转换日期字符串:

2014-01-21 00:00:00
Run Code Online (Sandbox Code Playgroud)

01/21/2014
Run Code Online (Sandbox Code Playgroud)

我尝试了很多变化,并且崩溃和燃烧.问题是要测试我必须创建脚本,在Bonita(BPM软件)的过程中导出它,导入它然后创建一些案例.这一切都需要很长时间.

希望有人知道如何做到这一点.

还有,那里有一个简单的常规编辑器吗?这将有助于我学习如何快速编写groovy.

groovy date

5
推荐指数
1
解决办法
3万
查看次数

AWS lambda java 响应不支持嵌套对象?

我是 Java 新手,所以这可能与 AWS lambda 根本无关。然而,lambda 对输入/输出对象采取了如此自由的态度,我假设它是这里的罪魁祸首。

我正在构建我的第一个 lambda 函数,并希望返回一个简单的 JSON 结构(在此示例中进一步简化):

{
  "document" : "1",
  "person" : { "name" : "John Doe" }
}
Run Code Online (Sandbox Code Playgroud)

但是,当 lambda 序列化 JSON 时,它总是将“person”设置为空白对象!

{
  "document": "1",
  "person": {}
}
Run Code Online (Sandbox Code Playgroud)

这是我的完整代码:

 - test1.java
package handler_test;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class test1 implements RequestHandler<String, ResponseClass> {
    @Override
    public ResponseClass handleRequest(String input, Context context) {
      return new ResponseClass();
    }
}

 - ResponseClass.java
package handler_test;
import org.json.JSONException;
import org.json.JSONObject;
public class ResponseClass {
    String document;
    JSONObject …
Run Code Online (Sandbox Code Playgroud)

java json amazon-web-services aws-lambda

5
推荐指数
2
解决办法
6894
查看次数