小编Gre*_*egg的帖子

轮询,Comet,WebSockets等

我需要在Web应用程序中构建一些非常激进的"自动刷新"功能.它是一种照片库,图像存储在AmazonS3上,但有关图像的数据存储在我们自己的数据库中.我玩过轮询服务器并发送ajax调用以获取更新的数据.我真的很担心这种方法对服务器的负载.有时,页面需要每15到30秒更新一次.

我一直在读Comet,我只是没有卖掉这个"黑客"是个好主意.WebSockets可能会有所帮助,但我担心它们太新而且太不受支持了.那么,话虽这么说,是否有人建议如何构建一个需要经常刷新并有可能拥有非常高的用户群的系统?

我并不认为只是为问题投入更多的服务器,但不相信这也是最好的方法.在其他人建议之前,我不能做Flex,因为网络应用程序必须在iPad上运行.

ajax comet polling websocket

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

混合使用相同名称的私有和公共/受保护方法会导致多方法被禁用,并且禁止避免出现令人惊讶的行为

我刚刚将我的一个Grails应用程序升级到2.2.0,它使用的是Groovy 2.0,现在我收到了这个编译错误:

混合使用相同名称的私有和公共/受保护方法会导致多方法被禁用,并且禁止避免出现令人惊讶的行为.重命名私有方法将解决问题.

基于以下代码:

def getRootDomain(key) { }

private getRootDomain() { }
Run Code Online (Sandbox Code Playgroud)

这是一个简单的修复,但我真的很想了解为什么更好.谁可以给我解释一下这个?

grails groovy groovy-2 grails-2.2

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

Grails MongoDB插件:嵌入式集合与参考

最初发布在Grails邮件列表上......

我一般不是数据库人员,但随着最新的mongodb grails插件的发布,我想看看没有SQL数据库的重要性.MongoDB似乎很有趣.我正在阅读有关面向文档存储的信息,并遇到以下情况:

客户/订单/订单行项目

该文件称订单应该是一个集合.客户收藏.line-items应该是嵌入在order对象中的一个行项目数组.

关于GORM,这种模式是如何确保的?我通常会有以下内容:

class Customer {
    static hasMany = [orders: Order]
}

class Order {
    static hasMany = [orderItems: OrderItem]
    static belongsTo = [customer:Customer]
}

class OrderItem {
    static belongsTo = [order:Order]
}
Run Code Online (Sandbox Code Playgroud)

如何确保Orders是自己的集合而不是嵌入在Customer中?如果这是默认值,那么如何确保OrderItems嵌入在Order中而不是它自己的集合中?这里的默认值是什么?

谢谢.

grails mongodb

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

Liquibase add-foreign-key-constraint deferrable:这是什么意思?

查看liquibase和add-foreign-key-constraint的文档,有一个名为deferrable的属性.但是文档并没有真正提到该财产的作用.谁知道?

liquibase

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

Asciidoctor可以每章渲染一个单独的HTML页面吗?

如果我有以下内容:

The Manual
====================
Gregg Bolinger
v1.0, 2014-15
:doctype: book
:icons: font
:imagesdir: images

Preamble paragraph

include::chapter1.ad[]

include::chapter2.ad[]
Run Code Online (Sandbox Code Playgroud)

我想这样每个章节都会在其自己的HTML文件中呈现,并且与TOC相关联,而不是例如在单个book.html中的所有内容.它似乎已经生成了单独的文件,但这只是因为它们位于源目录中.它仍然将所有内容组合到一个HTML页面中.我正在使用Gradle Asciidoctor插件,如果这有助于了解.

asciidoctor

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

Grails内联插件:无法升级通过BuildConfig.groovy配置的插件

我们的应用程序分为主应用程序和一些插件.我们通过BuildConfig.groovy文件使用内联插件.什么时候将整个生产过程用于生产,我收到以下信息:

您无法升级通过BuildConfig.groovy配置的插件,请删除配置以继续.

然后Grails想要卸载插件,因为它无法在application.properties中找到它.但在开发过程中,在application.properties中使用它会导致问题.因此,当我们准备创建一个生产WAR时,我们如何解决这个问题而不必每次都在BuildConfig.groovy中对插件进行评论?

grails buildconfig grails-plugin

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

将参数传递给$ .then函数

我有以下内容:

$(".remove-item").click(function(e) {
    e.preventDefault();

    var url = $(this).attr('href');
    var id = $(this).data("id");
    $.when(removeItem(url))
      .then(removeItemResponse(id));
});

var removeItemResponse = function(data, id) {
   console.log(data);
   console.log(id);
};

var removeItem = function(url) {
  return $.post(url);
};
Run Code Online (Sandbox Code Playgroud)

以上是行不通的,因为在处理ajax请求之后我在日志中什么也得不到,我知道它与我如何处理removeItemResponse中的参数有关.我需要使用来自ajax帖子的返回数据,但也传递我在click函数中检索到的id.

jquery jquery-deferred

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

想要在 JSON 中获取枚举值而不是名称

我有以下枚举:

public enum NotificationType {

    Store("S"),
    Employee("E"),
    Department("D"),
    All("A");

    public String value;

    NotificationType(String value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return this.value;
    }

    @JsonCreator
    public static NotificationType fromValue(String value) {
        for (NotificationType type : NotificationType.values()) {
            if (type.value.equals(value)) {
                return type;
            }
        }
        throw new IllegalArgumentException();
    }
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个转换器,以便在将枚举保存到数据库时,它会保留值(S、E、D 或 A)而不是名称。我可以POST使用该值将json 传递到控制器,并正确绑定到对象。

但是,当我从 a 呈现 JSON 时,GET它仍然显示名称(员工、商店等),我希望它仍然显示值。

java enums spring json jackson

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

JPA 和 Hibernate Cascade DELETE OneToMany 不起作用

我一直在阅读一篇又一篇文章,一篇又一篇文章,试图在最新的 Spring Boot 版本中使用 JPA/Hibernate 进行级联删除。我读过你必须使用 Hibernate 特定的级联,我读过你没有。我读过他们只是不工作,但它似乎是一个混合包。我试过的一切都不起作用。这种关系是双向的。

不起作用:

@Entity
public class Brand {

    @OneToMany(mappedBy = "brand", orphanRemoval = true, fetch = FetchType.LAZY)
    @Cascade({CascadeType.DELETE})
    @JsonManagedReference("brand-tax-rate")
    private List<TaxRate> taxRates;

}
Run Code Online (Sandbox Code Playgroud)

不起作用:

@Entity
public class Brand {

    @OneToMany(mappedBy = "brand", cascade = CascadeType.REMOVE, orphanRemoval = true, fetch = FetchType.LAZY)
    @JsonManagedReference("brand-tax-rate")
    private List<TaxRate> taxRates;

}
Run Code Online (Sandbox Code Playgroud)

除了删除TaxRates之前删除之外还有什么工作Brand吗?

我的测试是这样的:

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = {Application.class, SpringSecurityConfig.class})
@ActiveProfiles("test")
@Transactional
public class CascadeTests {

    @Autowired
    private BrandService brandService;

    @Autowired
    private TaxRateLoaderService taxRateLoaderService;

    @Autowired
    private TaxRateService …
Run Code Online (Sandbox Code Playgroud)

spring hibernate jpa cascade spring-boot

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

在IntelliJ IDEA中更改Grails SDK不适用于插件模块

IDEA 11.1.2

我有一个我需要升级的Grails应用程序.该应用程序包含几个模块.一个是应用程序,另一个是插件.我右键单击了应用程序并转到Grails - >更改SDK版本.我选择了我想要的版本,然后IDEA问我是否要升级应用程序.点击是,一切都很好.

我一直在尝试在插件模块上做同样的事情.IDEA从未询问我是否要升级,似乎没有更改SDK.如果我从命令行升级模块,当我回到IDEA时,它认为存在版本不匹配并且在没有询问的情况下自动降级我.

这有解决方法吗?

grails intellij-idea

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