zoukankan      html  css  js  c++  java
  • 关于一些OR Mapping的实现

    关于一些O-R Mapping的实现

    最近连续试用了两个O-R Mapping,一个是Hibernate 3,一个是国内的JDO实现Liberator。

    Hibernate 3在两层一对多关系时,似乎会性能很差,例如:

    Voucher
    | 1
    |
    | 0..*
    VoucherEntry
    | 1
    |
    | 0..*
    Assist

    在ERP系统,可能会有接近10的单据时多层一对多关系的,Hibernate在这方面似乎存在1 + N的问题,而我们在这方面有较好的优化策略。看来,Hibernate的作者尚未总结出一种较好的处理多层一对多关系的算法。

    我还没很细致研究Liberator,因为Liberator没有提供源码,通过反编译的方式,不方便调试。而且经过JDO Enhancer的值对象也是不可以调试的,这一点,JDO的局限就显示出来了。JDO不能直接和Eclipse集成使用,而且不能够调试值对象。

    Liberator似乎不是很稳定,例如:

    final PersistenceManagerFactory pmf = JDOHelper.getPersistenceManagerFactory(p);

    // Obtains a PersistenceManager
    final PersistenceManager pm = pmf.getPersistenceManager();

    // Construct an Account
    final Account account = new Account("foo""fooLast""fooPassword""foo@redsoftfactory.com");
    pm.currentTransaction().begin();
    pm.makePersistent(account);
    pm.flush();
    account.setPassword(
    "fooPassword");
    pm.makePersistent(account); 
    //这样修改似乎无效
    pm.flush();
    pm.currentTransaction().commit();

    不知道是我理解错误,还是Liberator的BUG。

  • 相关阅读:
    JavaScript访问ab页面定时跳转代码
    http协议相关-待续
    curl发送get和post请求
    Java入门——动态网页jsp(jdk下载和配置环境变量)
    LeetCode:Best Time to Buy and Sell Stock
    LeetCode:Reverse Integer
    LeetCode:Same Tree
    LeetCode:Single Number II
    LeetCode:Single Number
    LeetCode:Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/jobs/p/163962.html
Copyright © 2011-2022 走看看