小编Fle*_*tch的帖子

如何将Hibernate会话绑定到Grails中的线程?

我正在Grails编写一个多线程应用程序,其他线程需要访问GORM/Hibernate.当他们尝试访问GORM时,我收到错误"org.hibernate.HibernateException:没有Hibernate会话绑定到线程,配置不允许在这里创建非事务性的".

确定公平,有人可以指导我设置线程的最佳方式来访问吗?错误消息几乎听起来像你只需要更改一些配置选项但我感觉,它不是那么简单......

grails grails-orm hibernate-session

16
推荐指数
2
解决办法
9801
查看次数

Grails迭代域类的所有id的最佳方法

我有这样的代码:

Book.list().each {
  // real code actually does something more useful
  println "My id is " + it.id
}
Run Code Online (Sandbox Code Playgroud)

这让我觉得有点浪费,每本书的整个对象只是为了访问id而被加载.Grails中有一个load()方法,当你只想对ID进行操作时,我想知道这里是否有一个等价的加载所有域实例?我应该使用HQL吗?或者我应该保持原样?

PS:这让我想知道是否应该为大多数GORM方法(查找器等)提供一个选项,使其仅"加载"而不是"获取"目标类

grails grails-orm

13
推荐指数
3
解决办法
5773
查看次数

Gradle搜索zip而不是jar

我想在我的(Grails)项目中包含Apache commons-math 3.0.所以我把以下内容放在我的依赖项中:

compile "org.apache.commons:commons-math3:3.0"
Run Code Online (Sandbox Code Playgroud)

它位于中央maven存储库中,请参阅http://central.maven.org/maven2/org/apache/commons/commons-math3/3.0/

Gradle给了我错误

    ::::::::::::::::::::::::::::::::::::::::::::::

    ::              FAILED DOWNLOADS            ::

    :: ^ see resolution messages for details  ^ ::

    ::::::::::::::::::::::::::::::::::::::::::::::

    :: org.apache.commons#commons-math3;3.0!commons-math3.zip

    ::::::::::::::::::::::::::::::::::::::::::::::
Run Code Online (Sandbox Code Playgroud)

并包括:

==== mavenCentral: tried

  http://repo1.maven.org/maven2/org/apache/commons/commons-math3/3.0/commons-math3-3.0.zip
Run Code Online (Sandbox Code Playgroud)

所以它看起来似乎在正确的位置,但为什么它寻找拉链而不是罐子?Gradle doco说jar是默认搜索的东西.我甚至尝试使用带有@符号的"仅工件符号"来获取jar(如http://gradle.org/docs/current/userguide/dependency_management.html中所述),但它仍然只搜索zip.

grails gradle grails-2.0

7
推荐指数
1
解决办法
2238
查看次数

替换 Spring Boot 2 中的 Logback LevelRemappingAppender?

我正在将应用程序从 Spring Boot 1.x 迁移到 2.x,我在 logback 配置中发现了一些使用 a 的条目LevelRemappingAppender,如下所示:

<appender name="DEBUG_LEVEL_REMAPPER" class="org.springframework.boot.logging.logback.LevelRemappingAppender">
    <destinationLogger>org.springframework.boot</destinationLogger>
</appender>
Run Code Online (Sandbox Code Playgroud)

org.springframework.boot.logging.logback.LevelRemappingAppender Boot 2 中不存在,我在迁移指南中找不到替代品或任何提及。

有没有一种简单的方法可以在 Spring Boot 2 中包含这个 Logback 重映射功能?

java spring logback spring-boot spring-logback

7
推荐指数
0
解决办法
1279
查看次数

在Grails中使用大小约束和Integer

参考文档说大小约束:

使用Groovy范围来限制集合或数字的大小或String的长度.

当我对一个整数设置一个大小约束时,我收到一个警告

域类的属性[prop] TheClass的类型为[java.lang.Integer],不支持约束[size].验证期间不会检查此约束.

这个文件错了吗?

我知道我可以使用范围,但通常更容易指定数字中的数字位数而不是实际值(就像社会安全号码必须有7位数或其他任何数字,而不是1000000 - 9999999).

validation grails constraints grails-orm

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

我可以在Groovy中为另一个附加一个闭包吗?

我在Grails中有两个非常相似的方法,比如"通过os计算统计数据"和"通过浏览器计算统计数据" - 有效地准备一些东西,然后在数据库上运行类似的查询,然后对结果做一些事情.方法不同的唯一部分是它们在我的方法中运行的查询 -

def summary = c.list {
    eq('browser', Browser.get(1)) // OR eq('os', OS.get(1))
    between('date', dates.start, dates.end)
}
Run Code Online (Sandbox Code Playgroud)

在我看来,重构它的理想方法是将闭包的第一行作为方法参数传递.喜欢

doStats (Closure query) {
    ...
    def summary = c.list {
        query
        between('date', dates.start, dates.end)
    }
}
Run Code Online (Sandbox Code Playgroud)

我试过这个,但"查询"被忽略了.我尝试使用query()但是然后在定义的地方执行查询子句,因此这也不起作用.我想我可以将整个闭包作为参数传递,但这似乎是错误的 - 查询可能在将来变得更复杂.

有没有更好的想法?

grails groovy grails-orm

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

Flex自定义组件不接受脚本:默认属性的多个初始化值,'text',类型为'String'

我正在使用Flex 4和Flash Builder 4.我只是想学习创建组件,我创建了一个mxml组件,如下所示,并将其包含在我的应用程序中:

<?xml version="1.0" encoding="utf-8"?>
<s:TextInput xmlns:fx="http://ns.adobe.com/mxml/2009" 
             xmlns:s="library://ns.adobe.com/flex/spark" 
             xmlns:mx="library://ns.adobe.com/flex/mx">
    <fx:Script>
    </fx:Script>
</s:TextInput>
Run Code Online (Sandbox Code Playgroud)

如果我取出fx:Script标签它可以工作,但只要我有这些标签(无论是否有任何实际代码)我得到错误:"Flex自定义组件不接受脚本:多个初始化器值为默认属性'text',类型为'String'."

那为什么会这样?组件中不允许使用脚本吗?

apache-flex flex4

4
推荐指数
1
解决办法
2535
查看次数

Intellij 2020.1 显示 VCS 更改的快捷方式(模式提交对话框)

过去我可以在 Mac 上点击 CMD-9 来查看我的 git 变化。

现在 IntelliJ 现在有一个模态提交对话框,所以我在 CMD-9 出现的 git 窗口中看不到我的更改。是否有现有的键盘快捷键可以打开模式提交对话框,或者查看我的 git 更改?(我知道我可以在设置中恢复到旧的行为,但我不想要这样)。

git intellij-idea

4
推荐指数
1
解决办法
1619
查看次数

如何在开发中更改Grails域类时避免丢失DB

Grails 2.0的一个优点是您可以在开发中更改域类,而无需重新启动应用程序服务器.这是有效的,但是当我更改域类时,我丢失了所有的引导数据,这基本上违背了目的.我正在使用默认的h2数据库.

解决这个问题的最佳方法是什么?我是否必须去像Postgres这样的外部数据库?

grails grails-orm grails-domain-class grails-2.0

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

Spark DataGrid中labelFunction的替代品是什么?

mx:DataGrid有一个名为"labelFunction"的属性.我正在将我的datagrid迁移到Spark,但它没有此属性.我该如何更换此功能?

apache-flex flex4.5

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