就需要开发的组件和每个组件所使用的语言而言,编程模型是什么样的?
相对于框架和应用组件而言,持久对象的“生命周期”是什么样的?
1. 初始化
在服务实现的内部,需要进行什么样的初始化才能够访问框架的API?
给出在查询id=100的客户(Customer)之前,需要用来初始化框架的代码。
说明如何使用Derby JDBC驱动程序来设置框架,以及如何使用JNDI名称jdbc/Derby/DataSource的应用程序的数据源(DataSource)。
2. 链接
支持什么样的链接模型?
给出一个显示地创建连接的例子,在例子中使用与初始化部分相同的查询(如果支持这样做,并且在初始化部分中还没有给出过该查询的话)。
说明如何将数据库连接池的大小设置为20。
3. 事务
框架支持什么样的事务控制?
给出一个这样的例子,即把两个更新语句作为一组放到用户定义的单个事务中,如果可能的话,请使用如下的更新。
(1) 更新id=100的企业客户(business customer)信息,设置businessPartnet=false。
(2) 更新客户的未结订单(openOrder ),设置status=`SUBMITTED' 。
废除一个这样的例子,即配置框架以便能够使用应用程序服务器的全局事务(例如JTA)。
支持什么隔离级别?
给出每种支持的隔离级别所需的代码。
4. 创建
描述在框架内部创建对象的一般方法。
给出创建一个新的租住客户(ResidentialCustomer)的代码。
给出创建一个客户(Customer)拥有的新订单(Order)的代码。
5. 检索
描述在框架内部进行查询和对象检索的一般方法。
特别需要明确的是,是否支持动态查询?
给出检索匹配给定主键的单个客户(Customer)的代码。
给出检索所有“活跃”的客户(Customer)(具体而言,指所有具有未结订单(OPEN_ORDER)的客户(Customer))的代码。
6. 更新
描述在框架内部更新对象的一般方法。
给出更改单项(LineItem)的数量(quantity)的代码,具体来说,就是使用给定的客户ID(customerId)来把单项产品(LineItem)的数量的值更新为100.
给出把未结订单(OpenOrder)属性更改为Null的代码。
7. 删除
描述在框架内部删除对象的一般方法。
特别需要明确的是,是否支持级联删除?
给出删除单项(LineItem)的代码。
给出删除订单(Order)和所有相关联的单项(LineItem)(如果支持级联删除的话就通过级联删除)的代码。
8. 存储过程
描述在框架内部调用存储过程的一般方法。
给出弟阿勇一下的“交换排序”的java存储过程的代码。
SwapPojo orderlds=new SwapPojo();
orderlds .setFjrst (orderldl);
orderlds .setSecond (orderld2);
dm.update(”swap .order”,orderlds);
9. 批处理
描述在框架内部支持批处理的一般方法。
批模式支持什么样的更新操作?
为每种支持的操作给出一个例子。
10.框架拓展
使用简短的接口/API例子描述所有可能的拓展点或插入点。
如果框架支持插入分布式的缓存框架的话,那么可以推迟到分布式缓存部分再给出例子。
11. 错误处理
描述处理框架中的异常的一般方法。如果可能的话,考虑加入一个UML类图或者用你喜欢的符号描述的类图来说明其层次体系。