小编Jam*_*hon的帖子

ORM解决方案(JPA; Hibernate)与JDBC

我需要能够在内存中的HSQL数据库中以每5秒至少8000个对象的一致速率插入/更新对象.

我在Spring/Hibernate/JPA和纯JDBC之间做了一些比较性能测试.我发现使用HSQL在性能方面存在显着差异.使用Spring/Hib/JPA,我可以在5秒内插入3000-4000的1.5 KB对象(具有One-Many和Many-Many关系),而直接使用JDBC调用我可以插入10,000-12,000个相同的对象.

我无法弄清楚为什么会出现如此巨大的差异.我已经调整了Spring/Hib/JPA设置,试图在没有运气的情况下接近性能.我想将Spring/Hib/JPA用于未来目的,可扩展性,并且因为外键关系(一对多和多对)难以手工维护; 但性能要求似乎指向使用纯JDBC.

有什么想法会出现这么大的差异吗?

performance spring hibernate jpa jdbc

18
推荐指数
4
解决办法
2万
查看次数

为什么邮件列表用于项目协作?

我注意到许多开源项目继续使用邮件列表代替论坛.我个人发现的邮件列表是繁琐而神秘,使其更难解决/讨论与雇用他们项目的技术问题.我是否错过了邮件列表的一些继承优势,或者它们是不合时宜的?

只是为了澄清,这不是"一般来说邮件列表有什么用处"的问题.我刚刚注意到它们很常用于软件开发项目,而互联网的其他部分似乎已经开始了.那么使用邮件列表进行软件开发有什么好处呢?

project-management mailing-list

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

有没有办法在方法上更改JPA fetch类型?

有没有办法在不编辑实体对象的情况下在单个方法上更改JPA fetch类型?

我有一个由JPA实体类组成的共享ORM层.该ORM层由两个DAO层访问.一个DAO需要延迟抓取,因为它适用于我的Web应用程序,另一个需要急切的抓取,因为我需要它是线程安全的.

这是我的线程安全DAO的示例方法,

@PersistenceContext(unitName = "PersistenceUnit", type = PersistenceContextType.TRANSACTION)
private EntityManager em;

public ErrorCode findErrorCodeById(short id) {
    return (ErrorCode) em.createNamedQuery("ErrorCode.findById").
            setParameter("id", id).getSingleResult();
}
Run Code Online (Sandbox Code Playgroud)

我如何使这个方法(或整个类)使用渴望获取?

persistence dao jpa thread-safety fetching-strategy

18
推荐指数
2
解决办法
3万
查看次数

在Clojure中输入安全性

我想问一下Clojure上有哪种类型的安全语言?

我现在已经多次读过Luke VanderHart和Stuart Sierra的'Practical Clojure',但我仍然有一个明显的印象,即Clojure(和其他lisps一样)不会非常认真地对编译时验证进行检查.类型安全只是一种(非常流行的)策略,用于对正确的语义进行编译时检查

我问这个问题,因为我很难被证明是错的; 什么样的设计模式可用于clojure(在编译时,而不是在运行时)验证期望字符串的函数不会被调用,例如,整数列表?

此外,我读过非常聪明的人,比如Paul Graham公开提倡lisp允许在它之上实现低级语言的所有内容(大多数人会说语言本身正在重新实现),所以如果那个断言这将是真的,然后像类型检查这样简单的东西应该是小菜一碟.所以你觉得在clojure或其他lisps中存在类型系统(或实现这种类型系统的能力),这使得程序员能够将验证检查从运行时间偏移到编译时,甚至更好,设计 - 时间?

static-analysis compiler-errors clojure type-safety compilation-time

18
推荐指数
2
解决办法
2590
查看次数

调试Spring应用程序的提示或工具?

我试图在应用程序中第一次使用Spring.反复出现的一般问题是如何调试Spring.该框架配置繁重,因此传统的代码调试似乎毫无结果.我不知道如何在没有打开调试级别日志(缺少)和扫描的情况下进行故障排除.

是否有任何常规技巧或工具可以帮助Spring调试?

java debugging spring

15
推荐指数
2
解决办法
2万
查看次数

如何从单个方法返回两个值?

如果您需要在一个方法中返回两件事,那么最好的方法是什么?

我理解一个方法应该只做一件事的理念,但是说你有一个运行数据库选择的方法,你需要拉两列.我假设您只想遍历数据库结果集一次,但是您想要返回两列值的数据.

我提出的选项:

  1. 使用全局变量来保存退货. 我个人尽力避免使用全局变量.
  2. 传入两个空变量作为参数,然后在方法内部分配变量,现在这是一个空白. 我不喜欢有副作用的方法的想法.
  3. 返回包含两个变量的集合. 这可能会导致令人困惑的代码.
  4. 构建一个容器类来保存双返回. 这比包含其他集合的集合更自我记录,但似乎只是为了返回而创建一个类可能会令人困惑.

language-agnostic return-value

15
推荐指数
4
解决办法
3237
查看次数

你用什么来写Go

我知道它有点太早了,但我一直在尝试Go(Google的编程语言),并且在gedit中编写代码很烦人.

所以,我的问题是:你用什么来试验Go?

ide text-editor go

15
推荐指数
2
解决办法
5644
查看次数

如何制作字典扩展方法?

我正在尝试编写一个Dictionary独立于Key/Value数据类型的扩展.我尝试使用object数据类型传递它,假设它适用于任何类型.

我的代码:

 public static class DictionaryExtensionsClass
    {
        public static void AddFormat(this Dictionary< ?? unknow type/*object*/, ??unknow type/*object*/> Dic, ??unknow type/*object*/ Key, string str, params object[] arglist)
        {
            Dic.Add(Key, String.Format(str, arglist));
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# extension-methods dictionary

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

从ExtJs中的组合框获取完整的模型对象?

如果我有一个商店支持的组合框选择在ExtJS 4下触发事件,我该如何获得由该选择表示的完整对象?

extjs extjs4

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

如何防止异常导致Grails下的事务回滚?

我的Grails服务存在一个问题,即与事务无关的吞没异常导致事务回滚,即使它与域对象的持久性无关.

在我的服务中,我有一些东西

updateSomething(domainObj) {
    def oldFilename = domainObj.filename
    def newFilename = getNewFilename()

    domainObj.filename = newFilename
    domainObj.save(flush: true)

    try {
        cleanUpOldFile(oldFilename)
    } catch (cleanupException) {
        // oh well, log and swallow
    }
}
Run Code Online (Sandbox Code Playgroud)

我所看到的是,当我清理旧文件时遇到异常,我记录它并吞下它,但它仍然导致事务回滚,即使我已经完成了更新域对象.

如何在清理之前限制范围事务完成,或者是否有其他方法可以使清理异常不导致回滚?

只是为了记录我使用Grails 2.1.1

grails transactions grails-orm

14
推荐指数
2
解决办法
6495
查看次数