`
keren
  • 浏览: 1574101 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

compiere 是如何实现持久层的?

阅读更多
基本上是compiere把所有的表定义放在AD_Table,AD_Column里面,也就是所谓的ad里面。
所以,基本上通过ad的定义,就可以实现对PO的动态管理。
但是,从04年开始,为了适应compiere的db independent的计划,compiere在代码级别加强了po的管理, 基本上由这么几个类层次构成:1,PO.java, 这个是所有PO的基类,由它实现了查询,更新,删除的操作。
尤其是在这个类中,compiere希望由它来实现类似trigger的功能,以移植过去用大量PL/SQL写的trigger代码。 大家看到有beforesave,aftersave等function, 就是用来代替trigger的
2, X_***.java, 这个是可以通过compiere提供的generateModel工具自动产生的,
它继承了PO, 然后基本上相当于一个简单的bean, 是由一些类的get, set组成的。
3, 一般需要一些更复杂的功能,所以大部分的表还会有个对应的M***.java
它继承了X_***.java,  一般实现一些更复杂的业务逻辑。
如果还是一些文档类型的model, 那这个类还会实现DocAction接口
这种类,可以直接应用到workflow中,进行文档状态的转换。

分享到:
评论

相关推荐

    compiereweb 简介

    业务层主要位于`base`项目的`org.compiere.model`包,这里的对象是对持久层对象的扩展,实现了特定的业务逻辑。例如,`MPayment`对象是从`X_C_Payment`(继承自PO)派生的,它重写了`beforeSave`方法以执行自定义的...

    Java开源项目热门推荐.pdf

    本文档列举了多个流行的Java开源项目,涉及了Spring框架、持久层技术、Web MVC、日志框架、模板引擎、ERP、博客工具、搜索引擎、开发工具等多个方面。 Spring框架是Java企业级应用开发中最为流行的开源框架之一。...

    java著名开源项目

    - **定义与作用**:iBatis是一个持久层框架,提供了一种灵活的对象关系映射方式。 - **关键特点**: - **对象关系映射**:通过iBatis提供的ORM机制,业务逻辑实现人员可以只关注Java对象而不必关心底层数据库操作...

    Java最著名的开源项目

    IBATIS提供了一种持久层框架,它基于SQL映射机制。与Hibernate等全自动ORM框架相比,IBATIS在SQL开发工作量和数据库移植性上作出了折衷,但它为系统设计提供了更多的灵活性。 Compiere是一个具有高价值的商业应用...

    De facto:Spring 实现以快速启动您的项目-开源

    同时也包含了数据访问层,使得开发者能够便捷地连接数据库并执行CRUD操作。除此之外,项目还整合了其他关键的框架组件,如Spring Boot、Spring MVC和Spring Data等,为开发者搭建了一个全面的开发环境。 Spring ...

Global site tag (gtag.js) - Google Analytics